Blender Git Loki

Blender Git "hair_guides_grooming" branch commits.

Page: 17 / 25

August 19, 2017, 07:56 (GMT)
Removed unused shaders in the draw modes module.
August 18, 2017, 15:13 (GMT)
Implement control strands generation for basic hair types along surface normals.

The default hair group type uses vertex normals to generate guide strands automatically.
August 14, 2017, 07:46 (GMT)
Store the scalp mesh as part of the hair drawing interface.

The scalp mesh is always needed for evaluating root positions anyway.
August 14, 2017, 07:19 (GMT)
Removed fiber drawing from the strand edit mode to simplify code.

For rendering hair fibers the edit mode should just use the underlying data.
August 14, 2017, 06:58 (GMT)
Hair drawing data based on the new DNA hair groups.
August 11, 2017, 07:57 (GMT)
Store pointer into the hair follicle array in hair groups directly.

This creates a dependency of the hair groups on the validity of the pattern,
so care has to be taken to always update the groups when the pattern changes.
August 11, 2017, 07:17 (GMT)
Split off hair drawing code into a separate file.
August 7, 2017, 17:04 (GMT)
List of 'Hair Groups' in hair patterns that will generate actual fibers for rendering.

Each group affects a subset of the hair follicles, so that multiple effects can be combined
without overlapping sample sets.
August 7, 2017, 12:06 (GMT)
Merge branch 'blender2.8' of git.blender.org:blender into strand_editmode
August 7, 2017, 11:29 (GMT)
Operator for generating a hair follicle distribution.
August 7, 2017, 09:54 (GMT)
DNA data + modifier for storing persistent hair data.

This stores basic hair follicle data, rather than full fiber caches
(which should only be generated for render data).

Note that deformation by strands will just be one possible way to generate
hair fibers, so strands should be kept separate from the hair follicle data somewhat.
August 6, 2017, 11:41 (GMT)
Prototype hair deformers for generated detail like clumping and curling.

Currently only clumping and curls are implemented. There is no proper input
for the parameters yet, these are just hardcoded atm. Eventually the hair system
should either define uniform values from hair system settings or enable per-fiber
values using a material or other node-based input.
August 4, 2017, 07:41 (GMT)
Some optional timing for strand data buffer construction.
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.
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.
August 2, 2017, 21:35 (GMT)
Default settings for hair edit mode tool settings.
August 2, 2017, 21:28 (GMT)
Disable selection outline drawing on the object during hair edit mode.
August 2, 2017, 20:54 (GMT)
Removed leftover hair fiber code from edit mode drawing (all in Eevee now).
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.
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.
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021