﻿<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://wiki.blender.jp/index.php?action=history&amp;feed=atom&amp;title=%E5%88%A9%E7%94%A8%E8%80%85%3ALeonardoSegovia%2FGSoC_2018%2FProposal</id>
	<title>利用者:LeonardoSegovia/GSoC 2018/Proposal - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.blender.jp/index.php?action=history&amp;feed=atom&amp;title=%E5%88%A9%E7%94%A8%E8%80%85%3ALeonardoSegovia%2FGSoC_2018%2FProposal"/>
	<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:LeonardoSegovia/GSoC_2018/Proposal&amp;action=history"/>
	<updated>2026-08-29T13:08:52Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://wiki.blender.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:LeonardoSegovia/GSoC_2018/Proposal&amp;diff=154599&amp;oldid=prev</id>
		<title>Yamyam: 1版 をインポートしました</title>
		<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:LeonardoSegovia/GSoC_2018/Proposal&amp;diff=154599&amp;oldid=prev"/>
		<updated>2018-06-28T21:24:01Z</updated>

		<summary type="html">&lt;p&gt;1版 をインポートしました&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ja&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← 古い版&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;2018年6月28日 (木) 21:24時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;ja&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(相違点なし)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Yamyam</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.blender.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:LeonardoSegovia/GSoC_2018/Proposal&amp;diff=154598&amp;oldid=prev</id>
		<title>wiki&gt;LeonardoSegovia: Publish page</title>
		<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:LeonardoSegovia/GSoC_2018/Proposal&amp;diff=154598&amp;oldid=prev"/>
		<updated>2018-05-04T23:44:22Z</updated>

		<summary type="html">&lt;p&gt;Publish page&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Implementing a Hair Shader for Cycles =&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
&lt;br /&gt;
Leonardo Emanuel Segovia&lt;br /&gt;
&lt;br /&gt;
== Contact details ==&lt;br /&gt;
&lt;br /&gt;
* Email: [mailto:leonardo.segovia@cs.uns.edu.ar leonardo.segovia@cs.uns.edu.ar]&lt;br /&gt;
* IRC: amyspark&lt;br /&gt;
* Website: https://www.amyspark.me&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
&lt;br /&gt;
Realistic hair or fur is essential when creating a plausible virtual world. In feature animation, this is often used to define the signature look of characters; examples include Pixar’s ''Brave'' (Iben et al. [[#ref-Iben:2013:ASC:2485895.2485913|2013]]), and Walt Disney Animation Studios’ ''Tangled'' (Sadeghi et al. [[#ref-Sadeghi:2010:AFH:1833349.1778793|2010]]; also Ward et al. [[#ref-Ward:2010:SRH:1837026.1837055|2010]]) and ''Zootopia'' (Chiang et al. [[#ref-CGF:CGF12830|2016]]).&lt;br /&gt;
&lt;br /&gt;
Currently, Cycles has a working hair shader ([https://docs.blender.org/manual/en/dev/render/cycles/nodes/types/shaders/hair.html wiki page], [https://git.blender.org/gitweb/gitweb.cgi/cycles.git/blob/HEAD:/src/kernel/closure/bsdf_hair.h sources]), based on Marschner et al. ([[#ref-Marschner:2003:LSH:1201775.882345|2003]])’s model. Its several assumptions and simplifications make it inaccurate for light colored hair (d’Eon et al. [[#ref-CGF:CGF1976|2011]]) as well as for most types of fur (Yan et al. [[#ref-Yan:2015:PFR:2816795.2818080|2015]]). Furthermore, d’Eon et al. ([[#ref-CGF:CGF1976|2011]]) and Khungurn and Marschner ([[#ref-Khungurn:2017:ASE:3068851.2998578|2017]]) demonstrated it to not be energy conserving.&lt;br /&gt;
&lt;br /&gt;
This project intends to upgrade Cycles’ hair shader to the aforementioned ''Zootopia'' shader by Chiang et al. ([[#ref-CGF:CGF12830|2016]]), by porting Pharr ([[#ref-ZootopiaPBRT|2017]])’s implementation. Lukas Stockner has made available [https://github.com/lukasstockner/blender/tree/hairshader a WIP patch], which may also serve as a basis for this work.&lt;br /&gt;
&lt;br /&gt;
== Benefits ==&lt;br /&gt;
&lt;br /&gt;
By having this functionality, the Blender community will be able to render physically accurate, production-level quality hair without resorting to proprietary engines such as RenderMan.&lt;br /&gt;
&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
&lt;br /&gt;
The delivered shader implementation should be expected to include:&lt;br /&gt;
&lt;br /&gt;
* the node itself (in SVM as well as OSL)&lt;br /&gt;
* node-UI bindings&lt;br /&gt;
* energy conservation tests i.e. white furnace test&lt;br /&gt;
* formal verification tests i.e. correctness of the mathematical primitives&lt;br /&gt;
* Blender-Wiki documentation&lt;br /&gt;
* developer documentation&lt;br /&gt;
&lt;br /&gt;
== Project Details ==&lt;br /&gt;
&lt;br /&gt;
=== Shader Implementation ===&lt;br /&gt;
&lt;br /&gt;
Cycles shader nodes are implemented using [https://code.blender.org/2012/09/open-shading-language-in-cycles/ one of the following choices]:&lt;br /&gt;
&lt;br /&gt;
* simply using a [https://docs.blender.org/manual/en/dev/render/cycles/nodes/osl.html custom Open Shading Language node];&lt;br /&gt;
** these are only usable with CPU renders&lt;br /&gt;
* direct C++ implementation via SVM and OSL (in the sections below).&lt;br /&gt;
** these are available for both CPU and GPU&lt;br /&gt;
&lt;br /&gt;
=== Anatomy of a Shader ===&lt;br /&gt;
&lt;br /&gt;
The layout of a Cycles node is as follows (guidance taken from [https://wiki.blender.org/index.php/Dev:Source/Render/Cycles/SourceLayout here]:&lt;br /&gt;
&lt;br /&gt;
==== General primitives ====&lt;br /&gt;
&lt;br /&gt;
Cycles’ mathematical primitives are contained in &amp;lt;code&amp;gt;intern/cycles/util&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Shader closure ====&lt;br /&gt;
&lt;br /&gt;
Cycles’ BSDF closures are defined in &amp;lt;code&amp;gt;intern/cycles/kernel/closure/&amp;lt;/code&amp;gt;. These define the primitives that will be used later by the chosen shader backend.&lt;br /&gt;
&lt;br /&gt;
==== Shader implementation ====&lt;br /&gt;
&lt;br /&gt;
Cycles has [https://code.blender.org/2012/09/open-shading-language-in-cycles/ two backends available] for direct shader implementation.&lt;br /&gt;
&lt;br /&gt;
The first is the ''Open Shading Language'' (OSL, &amp;lt;code&amp;gt;intern/cycles/kernel/osl&amp;lt;/code&amp;gt;). These kind of shaders are only usable in the CPU. To implement them, the shader’s closure must be registered first in &amp;lt;code&amp;gt;intern/cycles/kernel/osl/osl_closures.cpp&amp;lt;/code&amp;gt;, which makes the necessary functions available for use by the shader itself (&amp;lt;code&amp;gt;intern/cycles/kernel/shaders/&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
A similar workflow is followed by the ''Shader Virtual Machine'' (SVM, &amp;lt;code&amp;gt;intern/cycles/kernel/osl/&amp;lt;/code&amp;gt;). Shaders implemented using the SVM can be used in both CPU and GPU renders. In this case, the shader’s BSDF components must be registered in &amp;lt;code&amp;gt;intern/cycles/kernel/closure/bsdf.h&amp;lt;/code&amp;gt;, and then the closure is evaluated in the interpreter loop at &amp;lt;code&amp;gt;intern/cycles/kernel/closure/svm_closure.h&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Blender UI registration ====&lt;br /&gt;
&lt;br /&gt;
New Cycles shader nodes need to be made available to Blender’s UI. This is implemented in the files at &amp;lt;code&amp;gt;source/blender/nodes/shader/nodes&amp;lt;/code&amp;gt;, while the general registration calls are available at &amp;lt;code&amp;gt;source/blender/blenkernel/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The registration logic includes:&lt;br /&gt;
&lt;br /&gt;
* implementing node sockets i.e. input and output parameters;&lt;br /&gt;
* registering the shader itself with the GPU kernel.&lt;br /&gt;
&lt;br /&gt;
After implementing the shader, the workflow would be as follows:&lt;br /&gt;
&lt;br /&gt;
* create and implement the registration logic in &amp;lt;code&amp;gt;source/blender/nodes/shader/nodes&amp;lt;/code&amp;gt;;&lt;br /&gt;
* reserve a new shader ID at &amp;lt;code&amp;gt;source/blender/blenkernel/BKE_node.h&amp;lt;/code&amp;gt; and register it at &amp;lt;code&amp;gt;source/blender/nodes/NOD_static_types.h&amp;lt;/code&amp;gt;.&lt;br /&gt;
* declare the new registration function in &amp;lt;code&amp;gt;blender/blenkernel/intern/NOD_shader.h&amp;lt;/code&amp;gt; and call it from &amp;lt;code&amp;gt;registerShaderNodes()&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;node.c&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Verification ===&lt;br /&gt;
&lt;br /&gt;
Blender employs two types of testing:&lt;br /&gt;
&lt;br /&gt;
* unit tests, in &amp;lt;code&amp;gt;src/test/render_graph_finalize_test.cpp&amp;lt;/code&amp;gt;&lt;br /&gt;
* regression tests, implemented as reproducible scenes (&amp;lt;code&amp;gt;lib/tests/cycles/ctests/shader/hair_*.blend&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
From a technical point of view, Pharr’s implementation already includes:&lt;br /&gt;
&lt;br /&gt;
* a white furnace test to ensure energy conservation&lt;br /&gt;
* a statistical test to verify correctness of the custom primitives.&lt;br /&gt;
&lt;br /&gt;
These should be easily ported to Cycles’ unit test framework. As an addition, I can also repurpose the existing hair tests to suit the new shader.&lt;br /&gt;
&lt;br /&gt;
=== Optimization ===&lt;br /&gt;
&lt;br /&gt;
Pharr’s implementation comes out-of-the-box with several customized, high performance primitives e.g. &amp;lt;code&amp;gt;SafeASin&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SafePow&amp;lt;/code&amp;gt;. They are all defined in terms of C++ standard functions, so there should be no need to change them.&lt;br /&gt;
&lt;br /&gt;
Further optimization could be done with [http://www.brendangregg.com/flamegraphs.html flame graphs] and [https://github.com/Microsoft/perfview Perfview] in Windows (the platform I’m most experienced with). For the GPU version, I could profile it with Nvidia Nsight Visual Studio Edition’s [http://docs.nvidia.com/nsight-visual-studio-edition/Nsight_Visual_Studio_Edition_User_Guide.htm#Heads_Up_Display_HUD.htm Heads-Up Display].&lt;br /&gt;
&lt;br /&gt;
In addition to the above, I should also test the shader’s:&lt;br /&gt;
&lt;br /&gt;
* compatibility with different types of lights (point, area, etc.)&lt;br /&gt;
* compatibility with importance sampling mechanisms&lt;br /&gt;
* sampling noise results.&lt;br /&gt;
&lt;br /&gt;
I expect to have testing builds available, if possible via [https://wiki.blender.org/index.php/Dev:Doc/Process/Buildbot_Experimental Blender’s experimental-buildbot] to receive and act on early feedback.&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
We divide the shader documentation in two:&lt;br /&gt;
&lt;br /&gt;
* ''developer documentation'': I expect the implementation to be self-documented simultaneously with the coding. There is also very little documentation on Blender’s node architecture as well; I can produce blog posts providing further insight on this.&lt;br /&gt;
* ''Blender-Wiki documentation'': apart from the obvious adjustments to the wiki page, I suggest to make the shader’s theoretical background more explicit. A link to the paper, as well as a bit of theoretical background (for those more technically inclined) would suffice.&lt;br /&gt;
&lt;br /&gt;
== Project Schedule ==&lt;br /&gt;
&lt;br /&gt;
Weeks are measured from Mon-Sun to align with GSoC’s Coding Period start date.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!align=&amp;quot;center&amp;quot; width=&amp;quot;5%&amp;quot;| Week&lt;br /&gt;
!align=&amp;quot;center&amp;quot; width=&amp;quot;22%&amp;quot;| Timeframe&lt;br /&gt;
!width=&amp;quot;71%&amp;quot;| Plans&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| Apr 23 – May 13&lt;br /&gt;
| Get acquainted with Blender’s code layout and standards, especially how Cycles nodes are implemented and the available mathematical facilities. Ensure Blender compiles successfully on all work devices.&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 1&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| May 14 – May 20&lt;br /&gt;
| Review of Pharr’s code. Implement a dummy Cycles node. Verify exposure of shader’s parameters and test setters/getters.&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 2&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| May 21 – May 27&lt;br /&gt;
| Port Pharr’s shader primitives and statistical tests. Verify they work as expected.&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 3&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| May 28 – Jun 3&lt;br /&gt;
| Port Pharr’s shading function.&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 4&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| Jun 4 – Jun 10&lt;br /&gt;
| Test shader functionality. If working, release test build.&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 5&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| Jun 11 – Jun 17&lt;br /&gt;
| Evaluate received feedback. Start bug fixes.&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 6&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| Jun 18 – Jun 24&lt;br /&gt;
| Port Pharr’s furnace test. Verify it works as expected.&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 7&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| Jun 25 – Jul 1&lt;br /&gt;
| Testing and bug fixes.&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| Jul 2&lt;br /&gt;
| ''Uni’s winter break starts here!''&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 8&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| Jul 2 – Jul 8&lt;br /&gt;
| Repurpose existing regression tests and obtain reference renders.&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 9&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| Jul 9 – Jul 15&lt;br /&gt;
| General testing and bug fixes.&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 10&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| Jul 16 – Jul 22&lt;br /&gt;
| User documentation revision.&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 11&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| Jul 23 – Jul 29&lt;br /&gt;
| Developer documentation revision.&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 12&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| Jul 30 – Aug 5&lt;br /&gt;
| Reserved week (just in case anything happens)&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| Aug 6&lt;br /&gt;
| ''Finish line!'' 👍&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These are my [https://www.uns.edu.ar/academicas/calendario-academico university’s holiday dates] as well (link in Spanish).&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| Week&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| Timeframe&lt;br /&gt;
! Holiday&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| May 1&lt;br /&gt;
| Workers’ Day&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 2&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| May 25&lt;br /&gt;
| Anniversary of the May Revolution&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 5&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| Jun 17&lt;br /&gt;
| Anniversary of the death of Martín Miguel de Güemes&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 6&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| Jun 20&lt;br /&gt;
| Flag’s Day&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 9&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| Jul 9&lt;br /&gt;
| Independence Day&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== School conflicts ===&lt;br /&gt;
&lt;br /&gt;
I have the following ''fixed'' commitments during the GSoC coding period. The timetable is given in GMT-3:&lt;br /&gt;
&lt;br /&gt;
* French classes&lt;br /&gt;
** Tue &amp;amp;amp; Thu 1800-2000&lt;br /&gt;
* Postgraduate course “Digital Image Processing”&lt;br /&gt;
** Thu 1230-1400&lt;br /&gt;
** Fri 0800-1000&lt;br /&gt;
&lt;br /&gt;
Any new commitments will be reported and coordinated with my assigned mentor as soon as possible.&lt;br /&gt;
&lt;br /&gt;
== Bio ==&lt;br /&gt;
&lt;br /&gt;
Hi all! My name is Leonardo, and I am a 25-years-old student of the MSc in Computer Science (Spanish: [https://cs.uns.edu.ar/home/carreras/magister.html ''Magister en Ciencias de la Computación'']), at the [https://www.uns.edu.ar Universidad Nacional del Sur] in Bahía Blanca, Argentina. Previously, I got my BSc in Computer Science in December 2016 from the same university, with a thesis in collision detection and handling in the Unity engine (see Selzer et al. ([[#ref-selzer2017modelos|2017]])).&lt;br /&gt;
&lt;br /&gt;
My coding experience has already involved working with large code bases: I have contributed several patches to the Krita painting suite and the Mitsuba renderer (C++, LaTeX), and Homebrew as well (Ruby). Thanks to these projects, I am familiar with all operating systems in which Blender runs (Linux, MacOS, Windows). I have also picked some knowledge of OpenGL and CUDA from university courses.&lt;br /&gt;
&lt;br /&gt;
I would love to do this project for two reasons. The first one is that, as part of my MSc thesis (started Aug 2017), I planned to implement one of Disney or Pixar’s shaders in an open source rendering engine. I never expected to see this very same idea proposed for GSoC 😂 ! The second reason is that working with people from around the world, in a production-level rendering engine, would be an invaluable experience for me as well as for my university.&lt;br /&gt;
&lt;br /&gt;
== Bibliography ==&lt;br /&gt;
&lt;br /&gt;
The following references include a DOI for your viewing pleasure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;refs&amp;quot; class=&amp;quot;references&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;ref-CGF:CGF12830&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chiang, Matt Jen-Yuan, Benedikt Bitterli, Chuck Tappan, and Brent Burley. 2016. “A Practical and Controllable Hair and Fur Model for Production Path Tracing.” ''Computer Graphics Forum'' 35 (2): 275–83. https://doi.org/10.1111/cgf.12830.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;ref-CGF:CGF1976&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
d’Eon, Eugene, Guillaume Francois, Martin Hill, Joe Letteri, and Jean-Marie Aubry. 2011. “An Energy-Conserving Hair Reflectance Model.” ''Computer Graphics Forum'' 30 (4): 1181–7. https://doi.org/10.1111/j.1467-8659.2011.01976.x.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;ref-Iben:2013:ASC:2485895.2485913&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Iben, Hayley, Mark Meyer, Lena Petrovic, Olivier Soares, John Anderson, and Andrew Witkin. 2013. “Artistic Simulation of Curly Hair.” In ''Proceedings of the 12th Acm Siggraph/Eurographics Symposium on Computer Animation'', 63–71. SCA ’13. New York, NY, USA: ACM. https://doi.org/10.1145/2485895.2485913.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;ref-Khungurn:2017:ASE:3068851.2998578&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Khungurn, Pramook, and Steve Marschner. 2017. “Azimuthal Scattering from Elliptical Hair Fibers.” ''ACM Trans. Graph.'' 36 (2). New York, NY, USA: ACM: 13:1–13:23. https://doi.org/10.1145/2998578.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;ref-Marschner:2003:LSH:1201775.882345&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Marschner, Stephen R., Henrik Wann Jensen, Mike Cammarano, Steve Worley, and Pat Hanrahan. 2003. “Light Scattering from Human Hair Fibers.” In ''ACM Siggraph 2003 Papers'', 780–91. SIGGRAPH ’03. New York, NY, USA: ACM. https://doi.org/10.1145/1201775.882345.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;ref-ZootopiaPBRT&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pharr, Matt. 2017. “The Implementation of a Hair Scattering Model.” In ''Physically Based Rendering: From Theory to Implementation'', 3rd ed. Boston, MA, USA: Morgan Kaufmann. http://www.pbrt.org/hair.pdf.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;ref-Sadeghi:2010:AFH:1833349.1778793&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sadeghi, Iman, Heather Pritchett, Henrik Wann Jensen, and Rasmus Tamstorf. 2010. “An Artist Friendly Hair Shading System.” In ''ACM Siggraph 2010 Papers'', 56:1–56:10. SIGGRAPH ’10. New York, NY, USA: ACM. https://doi.org/10.1145/1833349.1778793.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;ref-selzer2017modelos&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Selzer, Matías Nicolás, Elisabet Arriata, Leonardo Segovia, Nicolás Fernando Gazcón, and Martín Leonardo Larrea. 2017. “Modelos de interacción y aplicaciones en realidad virtual mediante dispositivos móviles.” In ''XIX Workshop de Investigadores en Ciencias de la Computación (WICC 2017, ITBA, Buenos Aires)''. Buenos Aires, Argentina. http://hdl.handle.net/10915/61869.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;ref-Ward:2010:SRH:1837026.1837055&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ward, Kelly, Maryann Simmons, Andy Milne, Hidetaka Yosumi, and Xinmin Zhao. 2010. “Simulating Rapunzel’s Hair in Disney’s Tangled.” In ''ACM Siggraph 2010 Talks'', 22:1–22:1. SIGGRAPH ’10. New York, NY, USA: ACM. https://doi.org/10.1145/1837026.1837055.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;ref-Yan:2015:PFR:2816795.2818080&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Yan, Ling-Qi, Chi-Wei Tseng, Henrik Wann Jensen, and Ravi Ramamoorthi. 2015. “Physically-Accurate Fur Reflectance: Modeling, Measurement and Rendering.” ''ACM Trans. Graph.'' 34 (6). New York, NY, USA: ACM: 185:1–185:13. https://doi.org/10.1145/2816795.2818080.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>wiki&gt;LeonardoSegovia</name></author>
		
	</entry>
</feed>