Strand Gpu

Here is a home for testing Lukas’s Branch: Strand Gpu

A fresh build is up on GA = strand_gpu_Win7.x64-813a656
First build had a crash, after lukas’s commits it didn’t crash.

Jensverwiebe post copied over to here…

Here is a Linux build, first initial testing showed the ugly things are fixed:

Branch: strand_gpu
Revision: 813a656
Submodules: locale a87cfb8 addons 75fb4e0 addons_contrib 72c24a1
OS: GNU/Linux, Architecture: x86_64, GLIBC: 2.19
Builddate: Mi 13. Jul 17:32:14 UTC 2016
Filesize: 102065804 byte
Shasum: 969734e118082b4155e7315fa84368605b88a9a3

Perhaps we should open an own thread ?


Ok. So, Is this intended to be used with the new viewport?
I have done some tests and my GPU produces more noise than usual due to Coil Whine. I guess it’s nothing dangerous for the GPU, right?

Doing the test again and my GPU makes no noise. I do not remember which was the setting I had used before.

Edit 2:
I found when GPU noise starts. It is when you orbit the view very close to the mesh. I’m not sure, but apparently gets worse in Edit mode.

It’s funny, my GPU sounds like R2D2 :slight_smile:

Edit 3 (2016-07-20):
In recent builds the weird Coil Whine noise is gone, barely normal noise of GPU working is heard. So much better now.

It looks like 2.8 is going to have even more viewport improvements, leaning towards Opengl 3.2
Should be rocking (ô¿ô)

In any shading mode, shader is specific to OpenGL Lights.
You can play with Quick Prefs addon, to try to give a better look to your hair.
When I change these OpenGL Lights, shader looks weird until I rotate the view.

It would be cool if in material mode, scene ligths could influence the shader instead.

Todays Linux, removed useless player in this testbuild:

Branch: strand_gpu
Revision: 5a3fabd
Submodules: locale a87cfb8 addons 75fb4e0 addons_contrib 72c24a1
OS: GNU/Linux, Architecture: x86_64, GLIBC: 2.19
Builddate: Do 14. Jul 18:50:27 UTC 2016
Filesize: 76765448 byte
Shasum: f9b438371ae33b52f4812013ffac33e7111ec016


thanks for the builds guys, fun to play with the kajiya shader!

Does somebody know what the geometry shader is for? on windows it crashes(but i think you maybe knew that) but on linux it works but it looks weird and gets very slow. Just wondering out of curiosity:)

I believe it relies on OpenGL 4.0, is unfinished, and aims to use the tessellation engine in modern GPUs to offload some of the strand creation/drawing to eventually speed things up once the future viewport spec is in place.

fresh build is live = strand_gpu_Win7.x64-5a3fabd

thanks m9105826 for the explanation and thanks tungerz for the new build. now the geometry shader also worked on windows.

i have opengl 4.5 but as you said its probably unfinished. looks like this now:

The Geometry Shader was introduced in OpenGL 3.2 and creates new geometry before the Fragment Shader is executed (the Fragment Shader is the one that defines the color of each pixel covered by some primitive (point, line, triangle…), it’s in there that we put the actual shading code). This Geometry Shader may be slow because generating the new geometric data may break the optimizations done to the data before sending to the GPU (such as de-duplicating vertices, indexed drawing…).

The Tesselation Control Shader, however, was introduced in OpenGL 4, and may be useful for drawing curves, strands, NURBS, and subdivisions, which are currently computed on the CPU (except for some OpenSubdiv stuffs).

Lukas is currently going away from the Geometry Shader, due to its performance issues.

It would be nice in the viewport to have a ramp on the hair, darker at the bottom and lighter at the top.
That will give better result to sho d=the hair and understand the flow.

Fresh build is live = strand_gpu_Win7.x64-9f69daf

Linux too …

Branch: strand_gpu
Revision: 44efcdd
Submodules: locale 6434575 addons 0c0f93a addons_contrib 1169e70
OS: GNU/Linux, Architecture: x86_64, GLIBC: 2.19
Builddate: Mo 18. Jul 17:36:20 UTC 2016
Filesize: 77892712 byte
Shasum: f216968065c43be5c9912e46dd1c14bdd39b2325


Yours is fresher (ô¿ô)