Re: [GSoC 2013] Advanced Rendering Techniques - Skin/Hair

Alexandru Voicu <[email protected]> Mon, 22 Apr 2013 22:21:55 -0700
Newsgroups gmane.comp.graphics.crystalspace.devel
Message-ID <CANOKqHu-Cv-vrTnzpbDrpLOOG0ymxXjtD+onkDpviMtDMv4YCg@mail.gmail.com>
Small updated: normal is computed as cross between tanget and binormal
which is fine, tangent is the vector between two adjacent points on the
hair strands which seems fine as well, the only problem might be the way in
which the binormal is computed: csMath3::CalcNormal(binormal, secondPoint,
firstPoint, cameraOrigin);


On Mon, Apr 22, 2013 at 10:06 PM, Alexandru Voicu <
[email protected]> wrote:

> Had a quick look at the mesh code (
> https://crystal.svn.sourceforge.net/svnroot/crystal/CS/trunk/plugins/mesh/furmesh/object/furmesh.cpp
> ).
> Normals are always pointing from the hair strand to camera origin.
> Tangents and binormals are computed according to the normals so that they
> make a 3 axis coordinate. Although this renders the meshes as expected, the
> normals and tangents are not good for the shading computations.
> Ideally we would want to compute another set of normals, tangents and
> binormals as they should (i.e. normal determined from 3 points on a hair
> strand) and pass them to the shader for Marschner. This will mean a lot of
> overload. We probably don't need to pass tangents and binormals as they are
> now.
>
> Probably a good approach to debug all of this would be to have a hair mesh
> made in blender with normals, binormals and tangents set correctly. After
> we confirm that the shaders look good on this in CS we can apply the
> shaders to the hair mesh and see if there are still looking good.
>
> Cheers,
> Alex.
>
>
>
> On Mon, Apr 22, 2013 at 5:20 PM, Alexandru Voicu <
> [email protected]> wrote:
>
>> Hey Girish,
>>
>> I will have to double check the code to see whether or not I am using the
>> normals in the shaders. I think I am passing the tangents/binormals
>> separately and those might be computed as they should.
>> Let me get back to you in a couple of days.
>>
>> Thanks,
>> Alex.
>>
>>
>> On Mon, Apr 22, 2013 at 12:37 PM, Girish Ramesh <[email protected]>wrote:
>>
>>> Hi Christian and Alex,
>>>
>>> I am going through the code to see whether I can figure out the issue
>>> and confirm wether it is as you said, as it definitely could be it. Alex,
>>> do you plan to check and work on the error? If not, I will try to work on
>>> fixing the issue or else reimplementing it might be a better idea, if it is
>>> not this issue, as Alex said. The task of updating the physical animation
>>> controller should be a simple one and I will add it to my proposal
>>> nonetheless. Well, I do think this one would be OK regarding the SSS
>>> technique, although I will research more on the SSS technique for the skin
>>> shader and see whether there is a simpler implementation, but I think this
>>> should definitely be doable even with the complexity of the diffusion maps.
>>> Now the question is whether I should tackle both tasks of skin and hair
>>> rendering because I am not sure whether it will be possible to work on both
>>> and finish both within 3 months! Do let me know what you think.Thanks!
>>>
>>> Regards,
>>> Girish
>>>
>>>
>>> On 22 April 2013 17:28, Christian Van Brussel <
>>> [email protected]> wrote:
>>>
>>>> > It can anyway be part of my project proposal along with
>>>> > the dual scattering model. Of course, if the gurus at crystal space
>>>> see it
>>>> > as a good project proposal!
>>>>
>>>> Yes, improving the hair mesh would be interesting. If you manage to fix
>>>> the current Marschner implementation then it is really great, but as
>>>> mentioned by Alex, adding another implementation based on it or on the
>>>> dual scattering model would be interesting too.
>>>>
>>>> Another thing that can be done with the hair mesh is to update the
>>>> physical animation controler in order to use alternatively the new
>>>> physics2 plugin instead of the physics1 one. Hopefully, this task would
>>>> be
>>>> quite straightforward and wouldn't take that much time.
>>>>
>>>> > Also, the skin
>>>> > shader implementations does not seem to be based on actual subsurface
>>>> > scattering but actually on approximations. So, i think it might be
>>>> better
>>>> > to have a physically realistic model than just a hack.
>>>>
>>>> Yes, the current SSS shader implementation is neither complex nor
>>>> finished, this was just a trial that can be thrown away once something
>>>> better is added.
>>>>
>>>> About the SSS technique to be used, the one currently selected might be
>>>> both complex to implement and complex to use (it needs a priori some
>>>> additional diffusion maps). Have you any idea of some other techniques
>>>> that might be simpler? Or you think that this one would be OK?
>>>>
>>>> And yes, definitively, having a GSOC project on both hair and skin
>>>> rendering would be very interesting :)
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> ------------------------------------------------------------------------------
>>>> Precog is a next-generation analytics platform capable of advanced
>>>> analytics on semi-structured data. The platform includes APIs for
>>>> building
>>>> apps and a phenomenal toolset for data science. Developers can use
>>>> our toolset for easy data analysis & visualization. Get a free account!
>>>> http://www2.precog.com/precogplatform/slashdotnewsletter
>>>> _______________________________________________
>>>> Crystal-develop mailing list
>>>> [email protected]
>>>> https://lists.sourceforge.net/lists/listinfo/crystal-develop
>>>>
>>>
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Precog is a next-generation analytics platform capable of advanced
>>> analytics on semi-structured data. The platform includes APIs for
>>> building
>>> apps and a phenomenal toolset for data science. Developers can use
>>> our toolset for easy data analysis & visualization. Get a free account!
>>> http://www2.precog.com/precogplatform/slashdotnewsletter
>>> _______________________________________________
>>> Crystal-develop mailing list
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/crystal-develop
>>>
>>>
>>
>

------------------------------------------------------------------------------
Try New Relic Now & We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service 
that delivers powerful full stack analytics. Optimize and monitor your
browser, app, & servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_apr

_______________________________________________
Crystal-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/crystal-develop