-
Notifications
You must be signed in to change notification settings - Fork 131
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Design clarification regarding the reason for using single global TressFX_OpaqueDesc #14
Comments
@khillesl-AMD will have more to say on this soon, but this decision was ... not universally beloved by the AMDers currently involved with TressFX. We may refactor this. |
We'd like to fix things like that, and make the library easier to integrate for production use. This is just one of many things that could change. Knowing you've worked on an Unreal integration, we'd like to hear what you think about that. |
@khillesl-AMD The way TressFX currently written it is very hard to integrate without rewriting TressFX Lib.
|
Good feedback. 1,2 and 4 I had mostly guessed (and argued the same fairly early on). 3, I hadn't. for 3 - Is the issue that there's a .tfx file as well as a .tfxsim file, etc, for each section? or is it that the hair model is in multiple sections, and there's a file (set) for each section? I have argued that we should just have one section = one object = one set of uniform settings (including LOD/section), rather than having objects made of pieces from a library perspective, just to simplify things. In other words, the current hair model woudl be something like 4 objects sharing the same transform, rather than 1 object with 4 sets of settings inside of it. There are a bunch of other factors here, but wondering if that is actually moving in the right or wrong direction, from your perspective, with respect to item 3. |
I ended up using the tfxproj file from the viewer to import the rest |
On a separate note, why is there a global g_PPLBuffers defined in TressFXRenderer.cpp ? As far as I see it's always mirrored by TressFXRenderer::m_pHeadPPLL_Buffer, m_pPPLL_Buffer . When a new PPLLBuffer is requested, the global one is destroyed and replaced by the new one, and the member in TressFXRenderer are changed so it looks like it's not really used. |
As I understand it, it was a hastily done hack to try multiple objects. |
There are several #define (SHORTCUT_WEIGHTED_AVERAGE, SHORTCUT_DETERMINISTIC) also used in shader, are they here for debug purpose or will they become runtime config toggle in an update ? |
Hello!
Could you please clarify why you chose to use a single TressFX_OpaqueDesc for the lifetime of the program?
The text was updated successfully, but these errors were encountered: