[x3d-public] 3D graphics, vertex attributes Tangent index and vector

Joe D Williams joedwil at earthlink.net
Fri May 16 18:58:08 PDT 2025


like  for normals, is there a tangentPerVertex true/false where tangent value
is associated with vertex or face?  
If tangentIndex null, is coordIndex used? 
If Tangent vector null tangents are generated after Normal vector? 

Thanks,
Joe



-----Original Message-----
From: Extensible 3D (X3D) Graphics public discussion <x3d-public at web3d.org>
Sent: May 15, 2025 6:19 AM
To: X3D <x3d-public at web3d.org>
Cc: Holger Seelig <holger.seelig at yahoo.de>
Subject: Re: [x3d-public] 3D graphics, vertex attributes Tangent index and vector

There are also glTF tests for tangents: 
Geometry with tangent node:
https://create3000.github.io/x_ite/laboratory/gltf-sample-viewer/?url=https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/NormalTangentMirrorTest/glTF/NormalTangentMirrorTest.gltf 
Geometry without tangent node (auto generated tangents using MikkTSpace algorithm):
https://create3000.github.io/x_ite/laboratory/gltf-sample-viewer/?url=https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/NormalTangentTest/glTF/NormalTangentTest.gltf
 
The reflection in all half spheres should look the same.
Turn on IBL (Image Based Lighting).
 
Best regards,
Holger
--
Holger Seelig
Leipzig, Germany
 
holger.seelig at yahoo.de
https://create3000.github.io/x_ite/
https://patreon.com/X_ITE
 









Am 15.05.2025 um 10:35 schrieb Holger Seelig via x3d-public <x3d-public at web3d.org>:
All nodes which have a normal field also have a tangent field in X_ITE, because tangents are very important for PhysicalMaterial to render correctly. Because tangents always come in conjunction with normals, normalPerVertex field is also used for tangents. 
If there is no Tangent node, the MikkTSpace algorithm is used to generate tangent vectors, as need by the glTF specification.
 
If there is a Tangent node and the vector field is empty, results are undefined.
 
Tangent node:
https://create3000.github.io/x_ite/components/rendering/tangent/
 
IndexedFaceSet with tangent field:
https://create3000.github.io/x_ite/components/geometry3d/indexedfaceset/#fields-tangent
 
Best regards,
Holger
--
Holger Seelig
Leipzig, Germany
 
holger.seelig at yahoo.de
https://create3000.github.io/x_ite/
https://patreon.com/X_ITE
 









Am 15.05.2025 um 10:24 schrieb Michalis Kamburelis <michalis.kambi at gmail.com>:
I don't know about Tangent in X_ITE...
 
But in Castle Game Engine we have a similar extension -- Tangent node ( https://castle-engine.io/x3d_implementation_rendering_extensions.php ). Looks like we developed it independently from X_ITE :) It certainly makes sense to have a node that carry this information, to have perfect rendering. (Tangents can be auto-calculated, but there are various details in the auto-calculation algorithm that various renderers may do a bit differently. When the 3D author used "baking" to make a normalmap texture, it's better to use exact same tangents as known by the 3D authoring tool.)
 
At least for Castle Game Engine, the answer is: if the Tangent node is not present, but we need tangents (e.g. for bump mapping), then the tangent vectors are calculated to match the normal vectors. So there's no additional tangentPerVertex or tangentIndex, they would not make sense. By knowing the normal vectors, by know all we need to generate reasonable tangent vectors. 
 
See https://castle-engine.io/x3d_implementation_rendering_extensions.php for more details.
 
Regards,
Michalis


czw., 15 maj 2025 o 07:43 John Carlson via x3d-public <x3d-public at web3d.org (mailto:x3d-public at web3d.org)> napisał(a):
Note, it’s Tangent vector=… not Tangent point=…
 
John

On Thu, May 15, 2025 at 12:38 AM John Carlson <yottzumm at gmail.com (mailto:yottzumm at gmail.com)> wrote:
I’d ask Holger, cc’d
 
I’ve not used Tangent, myself.
 
X_ITE Supports up to Level 4, so I guess you’re proposing a new level 5 for the Geometry 3D component?
 
Look at X_ITE IFS:
 
<IMG_0516.png>



 
Maybe check Holger’s create3000 Library for examples?
 
To retrieve examples, last time I tried:
 
git clone https://github.com/create3000/Library

Online at:
 
https://github.com/create3000/Library

Let’s get v2 Joe Kick out the door, check v2 finger joints, and make sure all joints have converted to v2.


 
John 

On Wed, May 14, 2025 at 10:45 PM Joe D Williams <joedwil at earthlink.net (mailto:joedwil at earthlink.net)> wrote:

Main questions, in IFS Level5:
Is a default tangent generated if Tangent point="" field empty? 
tangentPerVertex? assigned to vertex or face?
tangentIndex? If no tangentIndex is coordIndex used? 

Thanks,
Joe





-----Original Message-----
From: John Carlson <yottzumm at gmail.com (mailto:yottzumm at gmail.com)>
Sent: May 14, 2025 3:00 PM
To: Extensible 3D (X3D) Graphics public discussion <x3d-public at web3d.org (mailto:x3d-public at web3d.org)>
Cc: Joe D Williams <joedwil at earthlink.net (mailto:joedwil at earthlink.net)>
Subject: Re: [x3d-public] 3D graphics, vertex attributes

Joe, 
X_ITE has a tangent node:
 
Tangent | X_ITE X3D Browser (https://create3000.github.io/x_ite/components/rendering/tangent/)
 
Enjoy!
 
John


On Wed, May 14, 2025 at 4:46 PM Joe D Williams via x3d-public <x3d-public at web3d.org (mailto:x3d-public at web3d.org)> wrote:
>From this:

https://docs.google.com/document/d/1hCetnGIkut_dyt4mwkDSTNiLTbrVg1jLo_EArE74DRg/edit?tab=t.0


In 3D graphics, vertex attributes define per-vertex data necessary
for rendering, animation, shading, and so on.
These attributes include geometric properties such as
position, normal, tangents, texture mapping information (UV coordinates),
shading data (vertex colors), and
deformation information (skinning weights and blend shapes). 


In this discussion of vertex attributes, the only one I don't recall
seeing in X3D is tangent? 

Associated with this work:
https://docs.google.com/spreadsheets/d/18d1qy4jx-d_kLsam-JQAzig23w7dTau0Moe7M32lVvk/edit?gid=0#gid=0


Thanks,
Joe


_______________________________________________
x3d-public mailing list
x3d-public at web3d.org (mailto:x3d-public at web3d.org)
http://web3d.org/mailman/listinfo/x3d-public_web3d.org






_______________________________________________
x3d-public mailing list
x3d-public at web3d.org (mailto:x3d-public at web3d.org)
http://web3d.org/mailman/listinfo/x3d-public_web3d.org




_______________________________________________
x3d-public mailing list
x3d-public at web3d.org
http://web3d.org/mailman/listinfo/x3d-public_web3d.org




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20250517/fd2554f2/attachment-0001.html>


More information about the x3d-public mailing list