利用者:LeonardoSegovia/GSoC 2018/Reports/Week 3
< 利用者:LeonardoSegovia | GSoC 2018 | Reports
2018年6月2日 (土) 07:42時点におけるwiki>LeonardoSegoviaによる版 (Publish Week 3 report)
Week 3
Hi everyone! Yet another week's now gone. This is my report.
Objectives
We're still in Weeks 4-5:
- Test shader functionality. If working, release test build.
- Evaluate received feedback. Start bug fixes.
What's been done
This week's been MUCH better!
- It turns out that I had
WITH_CYCLES_DEBUG
on, that was the source of all theNaN
noise in my side. I rebuilt Blender from the ground up; I still haveRelWithDebInfo
on. - Thanks to Lukas, bzztploink and artok, we could get test builds for all platforms! This enabled us to find some issues regarding:
- Linux compilation
- Missing initialization code
- Some stuff I didn't know about Cycles's innards
In terms of commits,
- Me:
- Ronan Ducluzeau's noisy renders were caused by an mistake in Lukas's optimization of the trimmed logistic distribution. It's now fixed (rB2af62e27e2c89).
- Split off the azimuthal and longitudinal roughness factors to make debugging easier when needed (rB4a73f5ce584f4).
- Added compatibility with OpenCL. Thanks to nirved for the patches and comments! (rB9d6333127623e, rB00d0f3c23527b)
- Added OSL compatibility. I know I don't allocate the memory for the closures correctly, I'll patch it in the weekend. (rB718d730bb4093, rB718d730bb4093, rB4774e906e1981, rBb7a92fa75e56c, rBdf0ead4dabd0c, rBbf5a378c3c350)
- Added the final missing feature from Chiang's formulation, the R-mode roughness modifier (formally called "Primary Reflection Roughness Modifier"). It enables the user to render a shiny coat on an otherwise rough patch of fur (rB25677d7738530, rBc3048b5f53aae, rBb3ebdf64459d7).
- I had to move the geometry data out of the main
ShaderClosure
to make space for this. I didn't know that I had to tell Blender how many closures I was using 😅, so all Final Renders returned black hair. This was found by YAFU on BlenderArtists and fixed by Brecht.
- I had to move the geometry data out of the main
- Enabled Filter Glossy for the roughness coefficients. Brecht reports a ~75% improvement in render quality! (rB8087cefd03022, rBdf1e50fa5d913)
- Finally found out why Blender didn't listen to RNA's default for the hair parameterization. I added the correct initialization code (rB7780d306a416e).
- Merged the latest
master
commits. Only a single conflict! (Week 2: rB82e63de2842c2, Week 3: rBfede34a58a8df) - Bonus:
- Turned off the Diffuse override. It doesn't seem to be needed after Brecht's
curve_core_intersect
patch (rB718d730bb4093). - Added our shader to the Glossy closure checker as well (rB25677d7738530).
- Turned off the Diffuse override. It doesn't seem to be needed after Brecht's
- Brecht:
- Fixed the hair offset calculation by avoiding
curve_core_intersect
& pals altogether (rBabfca9375c6ae, rBff6883fbc330c, rBbaad410a5c5b1). - Added a few comments wrt. hair attenuation terms and offset angles (rBfc62d5a3b3622).
- Fixed the range for the R-mode roughness modifier (rB3c56635da9579).
- Fixed the number-of-closures issue that came with the R-mode roughness modifier (rB1fac3b7da05ad).
- Fixed the hair offset calculation by avoiding
Here are some images:
Next up
Apart from finally settling the memory allocation flow for the OSL shader, the original shader is mostly done. I could address some of the proposed features in the BlenderArtists thread:
- Define separately the eumelanin/pheomelanin coefficients, à la Arnold's Standard Hair
- Perhaps add more features, such as tinting? Again, following Arnold's shader features.
If no more bugs arise, I may start with the rest of the objectives too.
Questions
None this time!