[Bf-cycles] uv coordinates in Cycles standalone

Jasper Kindt jasper.kindt at gmail.com
Tue Dec 15 11:37:57 CET 2015


Guillaume,

Don't give up. I suggest building a pointcloud export and figuring out
the indexing out of primitive exports first. Perhaps export a single
quad as that was all I needed for my implementation, but I am sure you
can find out how the winding works in a triangle list. Wish I could
help you more...

Cheer up,
Jasper

On 14/12/2015, Guillaume Rouault <guillaume.rouault.fx at gmail.com> wrote:
> Hi again,
>
>  @Nathan, you mentionned to me somewhere that uvs a listed by triangles,
> but in the example file you gave me:
> https://github.com/jesterKing/CCSycles/blob/master/tests/objects/uv_cube.xml
>
> uvs are clearly listed by squares ( 6 of them of course)
>
> To be honest, I have really hard time exporting my uvs from houdini. I've
> tried a lot of things already, and nothing seems to work, I am on the verge
> of giving up frankly, which would be a shame, because uvs are my last main
> issue, I have almost a basic working solution for simple animations
> rendering with houdini.
>
> Guillaume
>
> On Thu, Dec 10, 2015 at 1:14 PM, Guillaume Rouault <
> guillaume.rouault.fx at gmail.com> wrote:
>
>> After reflection, It's dumb of me to think that the error comes from
>> source code. It definitely comes from my python code :
>> I was able to render correctly the example object you gave me
>> 'uv_cube.xml'
>>
>> Guillaume
>>
>> On Thu, Dec 10, 2015 at 12:45 PM, Guillaume Rouault <
>> guillaume.rouault.fx at gmail.com> wrote:
>>
>>> Thank you guys for your answers, I wanted some infos, and I have plenty
>>> of them now ^^ .
>>> I am trying to code a exporter from Houdini to Cycles Standalone. I use
>>> python to do that in houdini 15.
>>> The fact is , I am really bad at C++ and after several hours of reading
>>> the source code, my head hurts a little ^^ .
>>>
>>> indeed a lot of infos in cycles_xml.cpp
>>> I adapted my export script to try and mimic the way mesh is computed.
>>>
>>>  in the part of the code you mentionned
>>> https://developer.blender.org/diffusion/C/browse/master/src/app/cycles_xml.cpp;65ff373f0c71c043dd7b5632580501f1fc4bea7e$982
>>>
>>> Is it normal that the variable 'index_offset' stays at 0 ?
>>> Shouldn't it be incremented at every iteration ?
>>>
>>> Guillaume
>>>
>>> On Thu, Dec 10, 2015 at 6:42 AM, Nathan Letwory <nathan at mcneel.com>
>>> wrote:
>>>
>>>> -----BEGIN PGP SIGNED MESSAGE-----
>>>> Hash: SHA256
>>>>
>>>> I haven't actually tested this in the C++ standalone version, but only
>>>> in my C# CCSycles tester, but check out
>>>>
>>>> https://github.com/jesterKing/CCSycles/blob/master/tests/objects/uv_cube
>>>> .xml
>>>> <https://github.com/jesterKing/CCSycles/blob/master/tests/objects/uv_cube.xml>
>>>>
>>>> You'll have to add a texture coordinate input node and connect it to
>>>> the image texture node (vector). That should have your shader use UV
>>>> coordinates from the mesh data.
>>>>
>>>> UV coordinates are per triangle (you can double-check here:
>>>> https://developer.blender.org/diffusion/C/browse/master/src/app/cycles_x
>>>> ml.cpp;65ff373f0c71c043dd7b5632580501f1fc4bea7e$982)
>>>>
>>>> Here a custom RhinoCycles material using XML with a texture coordinate
>>>> input node:
>>>> https://github.com/mcneel/RhinoCycles/blob/master/Materials/BrickWithChe
>>>> ckeredMortar.cs
>>>>
>>>> And here for the C#-way of creating nodes in RhinoCycles where I set
>>>> projection and mappings
>>>> https://github.com/mcneel/RhinoCycles/blob/master/RenderEngine.Utils.cs#
>>>> L131
>>>> <https://github.com/mcneel/RhinoCycles/blob/master/RenderEngine.Utils.cs#L131>
>>>> - - in this function the last else block is probably the most
>>>> interesting, since here I connect the UV output from texture
>>>> coordinate input node :)
>>>>
>>>> Hope that helps,
>>>>
>>>> /Nathan
>>>>
>>>> On 09/12/2015 23:42, Guillaume Rouault wrote:
>>>> >
>>>> > I couldn't find a file named blender_mesh.cpp in the sources I
>>>> > have. And I think it would mainly give me some infos on how to
>>>> > format the mesh in the xml object file. but my main issue, I think,
>>>> > is at the shader level in the scene xml file, using the standalone
>>>> > XML API . How do I force the shader to use uv coordinates provided
>>>> > on the mesh ?
>>>> >
>>>> > Now that I think of it, there are no examples using uv mapped
>>>> > objects in the /examples folder, at least nothing using coordinates
>>>> > generated during modeling.  Is it even supported at this stage in
>>>> > the standalone version ?
>>>> >
>>>> > Guillaume
>>>> >
>>>> > On Wed, Dec 9, 2015 at 10:19 PM, Mohamed Sakr <3dsakr at gmail.com
>>>> > <mailto:3dsakr at gmail.com>> wrote:
>>>> >
>>>> > in blender_mesh.cpp, find attr_create_uv_map() function and see
>>>> > how they create UVs
>>>> >
>>>> > On Wed, Dec 9, 2015 at 10:26 PM, Guillaume Rouault
>>>> > <guillaume.rouault.fx at gmail.com
>>>> > <mailto:guillaume.rouault.fx at gmail.com>> wrote:
>>>> >
>>>> > Hi,
>>>> >
>>>> > I can't find any infos on uv coordinates for cycles standalone. As
>>>> > of now, I haven't been able to render an object with the correct
>>>> > uvs. I can see a texture, but it's mapped to every triangle on the
>>>> > mesh.
>>>> >
>>>> > I searched the xml api , and came up with that setup :
>>>> >
>>>> >
>>>> > *<!-- floor shader-->* *<shader name="floor" >* *<diffuse_bsdf
>>>> > name="diffuse" roughness="0.05" color="1.0, 1.0, 1.0" />*
>>>> > *<glossy_bsdf name="glossy" roughness="0.05" color="0.2, 0.2, 0.2"
>>>> > />* * * *<texture_coordinate name="uv" />* *<image_texture
>>>> > name="tex" src="./maps/aaa.jpg" />* *<add_closure name="mix" />*
>>>> > *<fresnel name="fresnel" />* *<connect from="fresnel fac"
>>>> > to="glossy color" />* * * *<connect from="uv uv" to="tex vector"
>>>> > />* *<connect from="tex color" to="diffuse color" />* * * * *
>>>> > *<connect from="diffuse bsdf" to="mix closure1" />* *<connect
>>>> > from="glossy bsdf" to="mix closure2" />* *<connect from="mix
>>>> > closure" to="output surface" />* *</shader>* * * * * Am I on the
>>>> > right path ? * * Are there any examples or infos on uvs somewhere
>>>> > ? Actually, on my meshes,  I don't even know if I have to export uv
>>>> > coords as vector2  (uv) , or vector3 (uvw) ? * * * * *Guillaume*
>>>>
>>>>
>>>> - --
>>>> Nathan Letwory
>>>> -----BEGIN PGP SIGNATURE-----
>>>> Version: GnuPG v2
>>>>
>>>> iQEcBAEBCAAGBQJWaRDMAAoJEKtfN7KsE0TtOXsH/2soTeJzRwChnzexs2SqgnJc
>>>> QWFo750pglTVpmmH2SDLGKg6fVofCYPzhc5UWnbR1+mlCkC+E8VsBLLu6CaG5Whb
>>>> 6Tfwq7uOE9Rht1dlE2PxzhzaoV/Q++cOIgubaCfq3sofBXIE5qbjYSLwtyrKDj7c
>>>> lhrPx/FwaapEHzEArjfWENbESVEHb7kJh9d39E3qeeCarflBDgJKVNxVC/SoVnsM
>>>> GZIrUWeujIhLpcWt6XN0P68jwQdyUnX6Kx8k7aN3iG6Un7BfxaqlY+/+W5sUKQhG
>>>> w7c349NeHj+gTJzbYTdY3f9zMLrVc2Iz7eVCmVy048aK2nMvG6+PunXcLBh6KVQ=
>>>> =/YDa
>>>> -----END PGP SIGNATURE-----
>>>> _______________________________________________
>>>> Bf-cycles mailing list
>>>> Bf-cycles at blender.org
>>>> http://lists.blender.org/mailman/listinfo/bf-cycles
>>>>
>>>
>>>
>>
>


More information about the Bf-cycles mailing list