How to find the vertices of a 3D shape?
This topic has been viewed 19291 times and has 13 replies
How to find the vertices of a 3D shape?
Hi,
I want to automatically find the vertices (coordinates and indices) of a 3D shape.
I am currently studying methods related to [font=courier new]exportNode[/font] of PhotoRenderer.java or [font=courier new]writeNode[/font] of OBJWriter.java.
Is it a good starting point even if it is not easy to know what to keep or not?
The goal is to be able to use this information for TriangleMeshLight light sources.
Enko
I want to automatically find the vertices (coordinates and indices) of a 3D shape.
I am currently studying methods related to [font=courier new]exportNode[/font] of PhotoRenderer.java or [font=courier new]writeNode[/font] of OBJWriter.java.
Is it a good starting point even if it is not easy to know what to keep or not?
The goal is to be able to use this information for TriangleMeshLight light sources.
Enko
EnkoNyito
Re: How to find the vertices of a 3D shape?
For SH3D lights, the types of geometric constructions detected are:
- TriangleArray (like the opaque light panel)
- LineStripArray (like the unviewable light panel).
Using, with the type LineStripArray, I have the error message:
Sunflow only considers triangle-based meshes for TriangleMeshLight light sources.
- TriangleArray (like the opaque light panel)
- LineStripArray (like the unviewable light panel).
Using,
Code: Select all
GeometryInfo geometryInfo = new GeometryInfo (geometryArray);Code: Select all
java.lang.IllegalArgumentException: Unsupported geometry typeCode: Select all
light {
type meshlight
name meshLamp
emit { "sRGB nonlinear" 1.000 1.000 1.000 }
radiance 100.0
samples 16
points 4
0.6 0.1 6.0
0.3 1.0 6.0
1.0 1.0 5.5
1.0 0.3 5.5
triangles 2
0 1 2
0 2 3
}EnkoNyito
Re: How to find the vertices of a 3D shape?
Without knowing what you stored in [font=courier new]geometryArray[/font], it's impossible to understand what is wrong.
If you look for simple examples, you could look at this tutorial and at the source code of ShapeGenerator plugin.
If you look for simple examples, you could look at this tutorial and at the source code of ShapeGenerator plugin.
Emmanuel Puybaret, Sweet Home 3D creator
Re: How to find the vertices of a 3D shape?
I use your tutorial to complete my information on the Javadoc of Java3D.
In [font=courier new]geometryArray[/font], the data about the object of any shape that I want to find the vertices is stored.
The ideal would be to force to use [font=courier new]TRIANGLE_ARRAY[/font].
In [font=courier new]geometryArray[/font], the data about the object of any shape that I want to find the vertices is stored.
Code: Select all
[...]
} else if (node instanceof Shape3D) {
Shape3D shape = (Shape3D)node;
[...]
// Read object geometries
for (int i = 0, n = shape.numGeometries(); i < n; i++) {
readNodeGeometry(shape.getGeometry(i), parentTransformations, texCoordGeneration,
textureTransform, cullFace, backFaceNormalFlip);
}
[...]
[...]
private void readNodeGeometry(Geometry geometry,
Transform3D parentTransformations,
TexCoordGeneration texCoordGeneration,
Transform3D textureTransform,
int cullFace,
boolean backFaceNormalFlip) {
if (geometry instanceof GeometryArray) {
GeometryArray geometryArray = (GeometryArray)geometry;
[...]EnkoNyito
Re: How to find the vertices of a 3D shape?
To have a reference of what I had to look for, I performed tests in Sunflow directly by editing the example_scene.geo.sc file.
I have found that vertices are only well taken into account if they are grouped into a single object defined in the .obj file.
Results in Sweet Home 3D.

By launching the rendering several times, sometimes the triangle mesh light is not well applied.
I think I should put my method [font=courier new]searchVertices (light)[/font] elsewhere than in [font=courier new]exportLightSource[/font] especially since there is redundancy with some methods already present in the PhotoRenderer file.
I have found that vertices are only well taken into account if they are grouped into a single object defined in the .obj file.
Code: Select all
# 3D model cube_v2.obj
mtllib cube_v2.mtl
g cube
usemtl default
v 0.0 0.0 0.0
v 100.0 0.0 0.0
v 100.0 0.0 100.0
v 0.0 0.0 100.0
v 0.0 100.0 0.0
v 100.0 100.0 0.0
v 0.0 100.0 100.0
v 100.0 100.0 100.0
f 1 2 3
f 1 3 4
f 2 1 5
f 2 5 6
f 1 4 7
f 1 7 5
f 3 2 6
f 3 6 8
f 4 3 8
f 4 8 7
f 7 8 6
f 7 6 5By launching the rendering several times, sometimes the triangle mesh light is not well applied.
I think I should put my method [font=courier new]searchVertices (light)[/font] elsewhere than in [font=courier new]exportLightSource[/font] especially since there is redundancy with some methods already present in the PhotoRenderer file.
EnkoNyito
Re: How to find the vertices of a 3D shape?
Using or modifying existing methods in the PhotoRenderer class optimizes the dynamic search for coordinates and vertices indices of a 3D shape. [:)]
The quality and duration of rendering depends on the composition and complexity (number of triangular faces) of the object transforming into light.
Neon digits (created by alaX)

SH3D models

The quality and duration of rendering depends on the composition and complexity (number of triangular faces) of the object transforming into light.
Neon digits (created by alaX)
SH3D models
EnkoNyito
-
ndorigatti
- Posts: 66
- Joined: Fri May 12, 2017 9:54 am
- Country: Italia
Re: How to find the vertices of a 3D shape?
So, let me understand.. are you finding a way to speed up rendering or trying to find a render result different than before?
Re: How to find the vertices of a 3D shape?
Unfortunately, I do not think it is possible to speed up the rendering with Sunflow.
On the other hand, I found a way for Sweet Home 3D to take into account the mesh light rendering .
On the other hand, I found a way for Sweet Home 3D to take into account the mesh light rendering .
EnkoNyito
-
ndorigatti
- Posts: 66
- Joined: Fri May 12, 2017 9:54 am
- Country: Italia
Re: How to find the vertices of a 3D shape?
So that you can have the whole mesh to light up? Could be interesting for my Philips homroo light model, where the glass part would be a mesh light!
Re: How to find the vertices of a 3D shape?
Maybe this could be bound to triangles orientation. Did you try to reverse the order of the vertices?sometimes the triangle mesh light is not well applied.
Emmanuel Puybaret, Sweet Home 3D creator
Who is online
Users browsing this forum: No registered users and 1 guest