JavaFX 3D : TriangleMesh specification questions
August Lammersdorf, InteractiveMesh
sdn at interactivemesh.com
Thu Apr 4 02:57:05 PDT 2013
Chien, thanks for your note.
Am I correct that your proposed smoothing group semantic change from
unique integer (0 - 31) to a '32 bit bit-set' implies that the range of
smoothing group IDs will increase up to 2**32 - 1 (4,294,967,295)? If
so, I consider this amount more than sufficient from a practical point
of view. But, you are not considering to replace 'int[]
faceSmoothingGroups' with 'BitSet[] faceSmoothingGroups' in
TriangleMesh.setFaceSmoothingGroups(...)?
Nevertheless, I advocate to reserve the ID '0' for all flat shaded
triangles (RT-28586).
Will there be a performance gain while a TriangelMesh instance is
created internally if not adjacent smooth sub-meshes are collected in
one smoothing group? Or does the generation of normals perform better if
each smooth sub-mesh is assigned to a unique ID?
One last thought: Wouldn't all these considerations be dispensable if
normals were supported?
August
Am Dienstag, den 02.04.2013, 11:49 +0200 schrieb Chien Yang
<chien.yang at oracle.com>:
> Hi August,
>
> I want to give you a heads up. We plan to make this change to
> the face smoothing group specification. Will this change works better
> for you or do you have any concern we should consider?
>
> https://javafx-jira.kenai.com/browse/RT-29236
>
> Thanks,
> - Chien
>
> On 2/22/2013 6:39 AM, August Lammersdorf, InteractiveMesh wrote:
>> Thanks Chien!
>>
>> - So, a single texCoord (0,0) referenced by all vertices would be
>> sufficient if no texture is specified in the PhongMaterial !?
>>
>> - Flat shading, triangles with all three edges creased, is just an
>> existing 3D rendering feature. Helpful to visualize face structures or
>> a red backlight glass ;-), etc..
>>
>> - Wavefront's OBJ files (.obj) provide a smoothing group statement
>> (s 1, s 2, ..) to collect subsequent faces into the specified group.
>> The statement 's 0' or 's off' turns off smoothing and all following
>> faces must be rendered in the flat manner. If no number is reserved
>> for flat faces, assigning an exclusive number to each flat face should
>> produce the same result in JavaFX 3D.
>>
>> - Even if a 3D file format supports smoothing groups, e.g. 3DS and
>> OBJ (Collada, VRML2, and X3D don't), its use isn't mandatory.
>> Alternatively normals or a crease angle might be delivered. Will
>> JavaFX 3D provide a smoothing group generator utility, as normals are
>> not implemented yet? Otherwise importer/loader have to include such a
>> feature.
>>
>> August
>>
>> Am Freitag, den 22.02.2013, 00:16 +0100 schrieb Chien Yang
>> <chien.yang at oracle.com>:
>>> Hi August,
>>>
>>> Please see my reply inline.
>>>
>>> On 2/21/2013 1:41 AM, August Lammersdorf, InteractiveMesh wrote:
>>>> While converting 3D model importer following questions occurred :
>>>>
>>>> - Are texCoords and texCoord indices required even if no texture
>>>> is applied because NUM_COMPONENTS_PER_FACE is final and has a value
>>>> of 6 (3 point indices and 3 texCoord indices per face)?
>>>>
>>>
>>> Yes, you will need to for JavaFX 8 since there is only one vertex
>>> format. We have plan to add more in future releases.
>>>
>>>> - Are normals or other vertex attributes planned?
>>>
>>> Yes.
>>>
>>>>
>>>> - Is flat shading supported? Does a corresponding smoothing group
>>>> number exist for the faceSmoothingGroups array (like '0' in *.obj
>>>> files)?
>>>>
>>>
>>> Flat shading isn't in our plan but we may consider it if you have
>>> a
>>> good 3D use case. Can you elaborate your question on smoothing
>>> group
>>> number?
>>>
>>>> - Must smoothing group numbers be consecutive and positive?
>>>>
>>>
>>> No, we didn't specify much about its restriction. It may be good to
>>> keep this within a small positive range. We may have to tighten
>>> later
>>> as we work out some of the details.
>>>
>>> Thanks,
>>> - Chien
>>>
>>>> Thanks, August
>>
More information about the openjfx-dev
mailing list