Revision 5a7efaf by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_nodes, tmp_hair_curves) July 27, 2016, 07:50 (GMT) |
Added "show_brush" option for hair edit settings, expected by common paint UI. This setting has no effect yet for hair editing, but the UI script expects it. |
July 25, 2016, 07:35 (GMT) |
Merge branch 'master' into object_nodes |
July 25, 2016, 07:34 (GMT) |
Merge branch 'master' into strand_nodes |
Revision f3bc942 by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_nodes, tmp_hair_curves) July 25, 2016, 07:33 (GMT) |
Merge branch 'master' into strand_editmode |
July 24, 2016, 11:11 (GMT) |
Merge branch 'object_nodes' into strand_nodes |
July 24, 2016, 11:09 (GMT) |
Added a number of addition matrix manipulation nodes. |
July 24, 2016, 07:52 (GMT) |
Removed the "effects" settings for statically defined fiber displacement effects. These things will now be possible using nodes. |
July 24, 2016, 07:51 (GMT) |
Fix shader updating, needs a tag reset after invalidating the shader. |
July 24, 2016, 07:31 (GMT) |
Fix debug geometry shader for strands. This geometry shader must be used regardless of the "use geometry shader" setting for the primary shader. |
July 24, 2016, 07:23 (GMT) |
Fallback displacement function for the strands shader if no nodetree is available. |
July 23, 2016, 15:24 (GMT) |
Depsgraph integration for hair strand nodes (horrible). The depsgraph now invalidates the strand shader when the nodes are changed. As mentioned in the previous commit, this happens through an operation in the object GEOMETRY component for each strand modifier. This is messy, only useful until we have truly granular modifier integration in the depsgraph. Invalidating the shader is currently done just by setting a flag. The actual freeing and subsequent lazy-rebuild of the shader is done in the drawing thread, because during the threaded depsgraph update we don't have a valid OpenGL context. This needs to be sorted out for future viewport recode. |
July 23, 2016, 12:30 (GMT) |
Revert "Remove redundant dependency declaration from pynodes, which creates a circular dependency." This reverts commit ca85cb436db7dc9ff5e8df3172987b09f5a071c4. Reverting the commit will break depsgraph updates for regular bvm functions again, but is necessary for making shader updates working. The problem here is that the update operations for _dependent_ data (bvm functions, shaders, etc.) should not actually be part of the node tree, but of the respective dependent data components! So the previous method of invalidating shaders as part of the node tree operations is incorrect and the operation should be moved to some other place. Perhaps we need a dedicated depsnode for the bvm function cache, since there is no single "owner" of these functions that could take care of invalidation in the depsgraph. |
July 23, 2016, 07:03 (GMT) |
Implementation of basic math functions for GLSL code generation from nodes. |
July 21, 2016, 18:16 (GMT) |
Each node gets expanded to two function calls for autodiff. The value is calculated without any derivative inputs (this is not a differential equation). The derivatives in both variables also depend on the partial derivatives of the inputs. |
July 21, 2016, 16:32 (GMT) |
Incorporate the generated GLSL code for hair displacement into the strands vertex shader. |
July 21, 2016, 16:03 (GMT) |
Emit function calls for each node. Base functions are yet to be defined. |
July 21, 2016, 15:38 (GMT) |
Support dual values for autodiff'ing in GLSL codegen right from the start. Note that for the hair displacement function we would only be interested in a single derivative (the tangent). For now we just use the existing 2-variable duals, later on this can be generalized to avoid unnecessary and confusing code emission. |
July 21, 2016, 13:33 (GMT) |
First steps for the GLSL code generator and hair displacement nodes. |
July 20, 2016, 10:15 (GMT) |
Node API for generating hair deformation GLSL code. This is just a stub atm. The BVM system will use nodes to generate a GLSL function, which can then be inserted into and compiled with a framework shader. The deformation function itself is just a simple expression (with autodiff for tangents), so it doesn't need to know about the topology of index buffers and the like. |
July 20, 2016, 10:14 (GMT) |
Smarter handling of debug_mode enum in the debugging utility script. |
|