Revision 9feec51 by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, strand_editmode, tmp_hair_curves) August 3, 2017, 19:27 (GMT) |
Subdivision of hair fibers for smoother shading. Subdivision works on the parent strands for efficiency. The fibers lengths are based on the final subdivided length of parents, so no changes to the shader are required. This would be nicer with a tesselation shader, but this feature is not available in Blender 2.8. |
Revision e34ba9f by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, strand_editmode, tmp_hair_curves) August 3, 2017, 07:11 (GMT) |
Use a 2D texture for the hair interpolation data instead of 1D for larger number of hairs. It turns out that 1D textures have the same size limit on their 1 axis as 2D textures. This limits the potential number of hair dramatically, even though the actual size of the texture is very small. Using a 2D texture and wrapping the index avoids this problem. |
Revision c92457a by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, strand_editmode, tmp_hair_curves) August 2, 2017, 21:35 (GMT) |
Default settings for hair edit mode tool settings. |
Revision bf0f058 by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, strand_editmode, tmp_hair_curves) August 2, 2017, 21:28 (GMT) |
Disable selection outline drawing on the object during hair edit mode. |
Revision e35f24f by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, strand_editmode, tmp_hair_curves) August 2, 2017, 20:54 (GMT) |
Removed leftover hair fiber code from edit mode drawing (all in Eevee now). |
Revision e8ff620 by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, strand_editmode, tmp_hair_curves) August 2, 2017, 20:40 (GMT) |
Moved the hair fiber shader from strand edit mode into Eevee. This allows the shader to use proper lighting from the standard Eevee shaders. The code for interpolating hair strands is in a glsl library file to facilitate use in other engines later. |
Revision 3a438c6 by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, strand_editmode, tmp_hair_curves) August 1, 2017, 07:10 (GMT) |
Hair fiber (child hair) drawing during edit mode, with heavy GPU leveraging. Hair drawing requires fairly large vertex buffers. Vertices also need to be interpolated and displaced according to the control (parent) hairs and hair-style features like curling and clumping. Instead of doing this in advance on the CPU and uploading a large vertex buffer every frame, this work can be done on the GPU for realtime display, because interpolation and displacement are highly parallelizable. The vertex buffers then only need to be uploaded once (as long as strand lengths remain the same). The vertex format can also be very lightweight, requiring only a curve parameter and index (half the size needed for full positions). For interpolating a buffer texture is used in the shader, which contains all information about the control curves (parents) from which to interpolate final vertex positions. |
Revision 57cbaa1 by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, strand_editmode, tmp_hair_curves) July 23, 2017, 07:32 (GMT) |
Custom shaders for drawing strand selection. |
Revision 679113f by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, strand_editmode, tmp_hair_curves) July 22, 2017, 11:35 (GMT) |
Basic drawing code for hair edit mode in the new 2.8 draw engine system. |
Revision 65d2374 by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, strand_editmode, tmp_hair_curves) July 16, 2017, 10:48 (GMT) |
Merge branch 'blender2.8' into strand_editmode2.8 |
Revision d3349e5 by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, strand_editmode, tmp_hair_curves) August 9, 2016, 13:52 (GMT) |
Merge branch 'master' into strand_editmode |
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. |
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 |
Revision 07cffae by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, tmp_hair_curves) July 20, 2016, 07:44 (GMT) |
Fix for uninitialized v_mirr variable when using edge strokes with mirroring. |
Revision 1b431c3 by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, tmp_hair_curves) July 19, 2016, 09:42 (GMT) |
Merge branch 'master' into strand_editmode |
Revision dd1211e by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, tmp_hair_curves) July 19, 2016, 08:32 (GMT) |
Merge branch 'master' into strand_editmode |
Revision 1d28579 by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, tmp_hair_curves) July 14, 2016, 07:59 (GMT) |
Merge branch 'mesh_samples' into strand_editmode |
Revision 48fc8b7 by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, tmp_hair_curves) July 14, 2016, 07:57 (GMT) |
Merge branch 'master' into strand_editmode |
Revision bd4ca21 by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, tmp_hair_curves) July 14, 2016, 07:56 (GMT) |
Merge branch 'master' into mesh_samples |
Revision 28270f0 by Lukas Toenne (hair_guides, hair_guides_grooming, hair_object, strand_editmode, strand_gpu, strand_nodes, tmp_hair_curves) July 14, 2016, 07:55 (GMT) |
Replace the deprecated TessFace usage for mesh sampling by LoopTri. Also make sure a valid generator instance for random sampling is always returned, regardless of triangle counts. |
|