Hi,
speaking with myself here...
I've narrowed the issue down further. This works:
int main()
{
osgDB::readNodeFile(...)
optimizer.Optimize(...)
osgDB::writeNodeFile(...)
}
The same code executed in a plugin loaded using dlopen() doesn't work (i.e. has
the missing VertexIndices and NormalIndices). On a mac, both variants work. Is
it possible that there is some sort of static initialization issue?
Cheers & thanks for looking at this,
Uli
On May 14, 2010, at 4:14 PM, Ulrich von Zadow wrote:
> Hi Robert,
>
> On May 14, 2010, at 2:24 PM, Robert Osfield wrote:
>
>> Hi Ulrich,
>>
>> On Fri, May 14, 2010 at 10:30 AM, Ulrich von Zadow
>> <[email protected]> wrote:
>>> shouldn't osgviewer crash as well then? Valgrind reports nothing for
>>> osgviewer with this file.
>>
>> It's not crashing by fluke.
>
> No. This is consistent. My program always crashes, osgviewer never crashes.
>
>>>
>>> Loading cube_triangulate.dae from the collada test model database gives
>>> this:
>>>
>>> CullVisitor::apply(Geode&) detected NaN,
>>> depth=nan, center=(2.26737e+37 -3.28032e+37 -3.28032e+37),
>>> matrix={
>>> nan nan nan nan
>>> nan nan nan nan
>>> nan nan nan nan
>>> nan nan nan nan
>>> }
>>>
>>> ... repeated lots of times.
>>
>> It's a case of "garbage in, garbage out", these errors are just
>> symptoms of the original problem with is the broken data.
>>
>> You can have to look into what the cause of your corrupted scene graph
>> is. The collada plugin or the original data?
>
> This is one of the official collada test files I'm loading now, so I doubt
> it's the file.
>
> Another data point: osgconv generates a different file than my program. In
> the osgconv version, there are additional VertexIndices and NormalIndices
> sections. Is there any reason that
>
> osgDB::readNodeFile(...)
> optimizer.Optimize(...)
> osgDB::writeNodeFile(...)
>
> should do something different than what osgconv does?
>
> I'm attaching the file that osgconv produces, with the sections that are
> missing in my version marked with '>>>'.
>
> Cheers,
>
> Uli
>
> Group {
> name "Collada visual scene group"
> nodeMask 0xffffffff
> cullingActive TRUE
> num_children 3
> MatrixTransform {
> name "Light"
> nodeMask 0xffffffff
> cullingActive TRUE
> description "Light"
> referenceFrame RELATIVE
> Matrix {
> 1 0 0 0
> 0 1 0 0
> 0 0 1 0
> -500 1000 400 1
> }
> num_children 1
> Switch {
> nodeMask 0xffffffff
> cullingActive TRUE
> NewChildDefaultValue 1
> ValueList {
> 0
> }
> num_children 1
> LightSource {
> nodeMask 0xffffffff
> cullingActive FALSE
> StateSet {
> UniqueID StateSet_0
> DataVariance STATIC
> rendering_hint DEFAULT_BIN
> renderBinMode INHERIT
> GL_LIGHT0 ON
> }
> referenceFrame RELATIVE
> Light {
> light_num 0
> ambient 0.05 0.05 0.05 1
> diffuse 1 1 1 1
> specular 1 1 1 1
> position 0 0 0 1
> direction 0 0 -1
> constant_attenuation 1
> linear_attenuation 0
> quadratic_attenuation 0
> spot_exponent 0
> spot_cutoff 180
> }
> }
> }
> }
> MatrixTransform {
> name "Box"
> nodeMask 0xffffffff
> cullingActive TRUE
> description "Box"
> referenceFrame RELATIVE
> Matrix {
> 1 0 0 0
> 0 1 0 0
> 0 0 1 0
> 0 0 0 1
> }
> num_children 1
> Geode {
> name "box-lib"
> nodeMask 0xffffffff
> cullingActive TRUE
> num_drawables 1
> Geometry {
> DataVariance STATIC
> name "BlueSG"
> StateSet {
> DataVariance STATIC
> rendering_hint DEFAULT_BIN
> renderBinMode INHERIT
> GL_CULL_FACE ON
> Material {
> ColorMode OFF
> ambientColor 0 0 0 1
> diffuseColor 0.137255 0.403922 0.870588 1
> specularColor 0.5 0.5 0.5 1
> emissionColor 0 0 0 1
> shininess 16
> }
> }
> useDisplayList TRUE
> useVertexBufferObjects FALSE
> PrimitiveSets 1
> {
> DrawArrayLengths TRIANGLES 0 1
> {
> 36
> }
> }
> VertexArray Vec3Array 8
> {
> -50 50 50
> 50 50 50
> -50 -50 50
> 50 -50 50
> -50 50 -50
> 50 50 -50
> -50 -50 -50
> 50 -50 -50
> }
>>>> VertexIndices IntArray 36
>>>> {
>>>> 0 2 3 0 3 1 0 1 5 0
>>>> 5 4 6 7 3 6 3 2 0 4
>>>> 6 0 6 2 3 7 5 3 5 1
>>>> 5 7 6 5 6 4
>>>> }
> NormalBinding PER_VERTEX
> NormalArray Vec3Array 24
> {
> 0 0 1
> 0 0 1
> 0 0 1
> 0 0 1
> 0 1 0
> 0 1 0
> 0 1 0
> 0 1 0
> 0 -1 0
> 0 -1 0
> 0 -1 0
> 0 -1 0
> -1 0 0
> -1 0 0
> -1 0 0
> -1 0 0
> 1 0 0
> 1 0 0
> 1 0 0
> 1 0 0
> 0 0 -1
> 0 0 -1
> 0 0 -1
> 0 0 -1
> }
>>>> NormalIndices IntArray 36
>>>> {
>>>> 0 1 2 0 2 3 4 5 6 4
>>>> 6 7 8 9 10 8 10 11 12 13
>>>> 14 12 14 15 16 17 18 16 18 19
>>>> 20 21 22 20 22 23
>>>> }
> }
> }
> }
> MatrixTransform {
> name "pointLight1"
> nodeMask 0xffffffff
> cullingActive TRUE
> description "pointLight1"
> referenceFrame RELATIVE
> Matrix {
> 1 0 0 0
> 0 1 0 0
> 0 0 1 0
> 3 4 10 1
> }
> num_children 1
> Switch {
> nodeMask 0xffffffff
> cullingActive TRUE
> NewChildDefaultValue 1
> ValueList {
> 0
> }
> num_children 1
> LightSource {
> nodeMask 0xffffffff
> cullingActive FALSE
> Use StateSet_0
> referenceFrame RELATIVE
> Light {
> light_num 1
> ambient 0.05 0.05 0.05 1
> diffuse 1 1 1 1
> specular 1 1 1 1
> position 0 0 0 1
> direction 0 0 -1
> constant_attenuation 1
> linear_attenuation 0
> quadratic_attenuation 0
> spot_exponent 0
> spot_cutoff 180
> }
> }
> }
> }
> }
>
>
> --
> Ulrich von Zadow
> Software Engineer (Dipl. Inf.)
> Exhibit Development
>
> Tel +49 (0)30 / 2000 577 12
> Fax +49 (0)30 / 2000 577 20
> Skype: uzadow
>
> Archimedes Solutions GmbH
> Saarbrücker Str. 24 10405 Berlin
>
> www.archimedes-solutions.com
>
> Geschäftsführung:
> W. Rien | J. Schmidtsiefen | S. Spenling
>
> Amtsgericht: Berlin Charlottenburg
> HR Nr.: 107563 B
> UST-ID Nr.: DE-253.771.793
>
>
>
>
>
>
>
>
> _______________________________________________
> osg-users mailing list
> [email protected]
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
--
Ulrich von Zadow
Software Engineer (Dipl. Inf.)
Exhibit Development
Tel +49 (0)30 / 2000 577 12
Fax +49 (0)30 / 2000 577 20
Skype: uzadow
Archimedes Solutions GmbH
Saarbrücker Str. 24 10405 Berlin
www.archimedes-solutions.com
Geschäftsführung:
W. Rien | J. Schmidtsiefen | S. Spenling
Amtsgericht: Berlin Charlottenburg
HR Nr.: 107563 B
UST-ID Nr.: DE-253.771.793
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org