Jump to content

Can't use double-precision editor to place nodes


photo

Recommended Posts

Using the double-precision version of Unigine, and the editor scripts that come with Unigine, any attempt to create terrain, whether through importing or creating causes the editor to stop working. The mouse icon gets stuck on the terrain icon, and the application is from then on functionally unresponsive.

 

The following log shows what is happening. There seems to be an error in a conversion from vec3 to dvec3 which triggers a catastrophe. Since this seems to come from Controls::place_node() I tried this with just placing a mesh, and got the same 'crash'. Thus, the editor isn't really useful for placing any node.

 

This seems a pretty fundamental problem. Even within our own applications that are using Unigine we see this sort of error but in different contexts, and I'm not sure what is triggering it. Hopefully this can be fixed quickly.

 

Loading "C:/src/Unigine/Unigine SDK - binary/bin/unigine.cfg"...

Loading "dxgi.dll"...

Set 1024x768 windowed video mode

Set 1.00 gamma value

Unigine engine http://unigine.com/

Binary: Windows 32bit Visual C++ 1600 Debug Jul 21 2011 r7184

Features: OpenGL Direct3D9 Direct3D10 Direct3D11 OpenAL XPad360 Joystick Editor

Double

App path: C:/src/Unigine/Unigine SDK - binary/bin/

Data path: C:/src/Unigine/Unigine SDK - binary/data/

Save path: C:/src/Unigine/Unigine SDK - binary/bin/

 

---- System ----

System: Windows 7 (build 7601, Service Pack 1) 64bit

CPU: Intel® Core i7-2600 CPU @ 3.40GHz 3392MHz MMX SSE SSE2 SSE3 SSSE3 SSE

41 SSE42 HTT x4

GPU: NVIDIA GeForce GTX 460 8.17.12.6311 x1

System memory: 4078 Mb

Video memory: 1024 Mb

Sync threads: 4

Async threads: 4

 

---- MathLib ----

Set SSE simd processor

 

---- Sound ----

NULL

 

---- Render ----

Renderer: NVIDIA NV60 1024Mb

Direct3D11 desc: NVIDIA GeForce GTX 460

Found feature level 11.0

Found compute shader 11.0

Maximum texture size: 16384

Maximum texture units: 16

Maximum texture renders: 8

 

---- Physics ----

Physics: Multi-threaded

 

---- PathFind ----

PathFind: Multi-threaded

 

---- Interpreter ----

Version: 2.41

 

Loading "unigine.cpp" 47ms

Loading "core/materials/default/unigine_post.mat" 15 materials 21 shaders 0ms

Loading "core/materials/default/unigine_render.mat" 37 materials 311 shaders 7ms

 

Loading "core/materials/default/unigine_meshes.mat" 18 materials 11031 shaders 5

9ms

Loading "core/materials/default/unigine_terrains.mat" 2 materials 432 shaders 2m

s

Loading "core/materials/default/unigine_grass.mat" 1 material 69 shaders 3ms

Loading "core/materials/default/unigine_particles.mat" 1 material 47 shaders 3ms

 

Loading "core/materials/default/unigine_billboards.mat" 1 material 51 shaders 3m

s

Loading "core/materials/default/unigine_volumes.mat" 6 materials 45 shaders 6ms

Loading "core/materials/default/unigine_guis.mat" 1 material 82 shaders 1ms

Loading "core/materials/default/unigine_water.mat" 1 material 117 shaders 5ms

Loading "core/materials/default/unigine_skies.mat" 1 material 13 shaders 7ms

Loading "core/materials/default/unigine_decals.mat" 1 material 99 shaders 3ms

Loading "core/properties/unigine.prop" 2 properties 0ms

Unigine~# editor_load

Loading "core/editor/editor.cpp" 205ms

 

---- Editor ----

Version: 0.58

 

Unigine~# world_load C:/src/TestTerrain/terrain_world

Loading "C:/src/TestTerrain/terrain_world.cpp" 0ms

Loading "C:/src/TestTerrain/terrain_world.world" 0ms

Variable::getDVec3Safe(): can't convert vec3 to dvec3

Stack dump:

0x0000: vec3: 0 0 0

0x0001: vec4: 1 0 0 1

Call stack:

00: 0x00052d50 Controls::place_node()

01: 0x000530d9 Controls::update()

02: 0x00053424 controlsUpdate()

03: 0x00053f33 update()

Disassemble:

0x00052e40: callef engine.visualizer.renderVector

0x00052e42: pop

0x00052e43: pushv s

0x00052e45: pushv r

0x00052e47: pushv t

Editor::update(): editor update function return 0

Variable::getDVec3Safe(): can't convert vec3 to dvec3

Stack dump:

0x0000: vec3: 0 0 0

0x0001: vec4: 1 0 0 1

0x0002: int: 990

0x0003: int: 989

0x0004: double: 0

0x0005: dvec3: 9523.54 -1560.75 -2620.34

0x0006: Node 00000000 external (52:-1:-1)

0x0007: NodeReference 00000000 external (55:-1:-1)

0x0008: int: 1

0x0009: int: 0

0x000a: int: 0

0x000b: ObjectTerrain 02EE5C40 external (85:0:0)

0x000c: mat4: (1 0 0 0) (0 1 0 0) (0 0 1 0) (0 0 0 1)

0x000d: vec3: 0 0 0

0x000e: vec3: 0 0 0

0x000f: vec3: 0 0 0

0x0010: vec3: 0 0 0

0x0011: float: 1507.82

0x0012: vec3: 0 0 1

0x0013: vec3: 0 0 0

0x0014: dvec3: 9523.54 -1560.75 -2620.34

0x0015: dvec3: 0 0 0

0x0016: int: 0

0x0017: int: 0

0x0018: int: 0

0x0019: ObjectTerrain 02EE5C40 external (85:0:0)

0x001a: int: 992

0x001b: int: 991

0x001c: int: 0

0x001d: int: 0

0x001e: Property 00000000 external (109:-1:-1)

0x001f: Material 00000000 external (108:-1:-1)

0x0020: Object 00000000 external (80:-1:-1)

0x0021: int: 0

0x0022: int: 0

0x0023: string: ""

0x0024: Node 00000000 external (52:0:0)

0x0025: dvec3: 9723.16 -438.567 -2295.17

0x0026: dvec3: 0 0 0

0x0027: double: 48.3581

0x0028: Property 00000000 external (109:-1:-1)

0x0029: Material 00000000 external (108:-1:-1)

0x002a: Object 00000000 external (80:-1:-1)

0x002b: Node 00000000 external (52:-1:-1)

0x002c: NodeReference 00000000 external (55:-1:-1)

0x002d: Node 00000000 external (52:-1:-1)

0x002e: int: 0

0x002f: int: 0

0x0030: int: 0

0x0031: Object 00000000 external (80:-1:-1)

0x0032: Node 00000000 external (52:-1:-1)

0x0033: vec3: 0 0 0

0x0034: vec3: 0 0 0

0x0035: int: 0

0x0036: int: 0

0x0037: int: 0

0x0038: int: 0

Call stack:

00: 0x00052d50 Controls::place_node()

01: 0x000530d9 Controls::update()

02: 0x00053424 controlsUpdate()

03: 0x00053f33 update()

Disassemble:

0x00052e40: callef engine.visualizer.renderVector

0x00052e42: pop

0x00052e43: pushv s

0x00052e45: pushv r

0x00052e47: pushv t

Editor::update(): editor update function return 0

Variable::getDVec3Safe(): can't convert vec3 to dvec3

Stack dump:

0x0000: vec3: 0 0 0

0x0001: vec4: 1 0 0 1

0x0002: int: 990

0x0003: int: 989

0x0004: double: 0

0x0005: dvec3: 9523.54 -1560.75 -2620.34

0x0006: Node 00000000 external (52:-1:-1)

0x0007: NodeReference 00000000 external (55:-1:-1)

0x0008: int: 1

0x0009: int: 0

0x000a: int: 0

0x000b: ObjectTerrain 02EE5C40 external (85:0:0)

0x000c: mat4: (1 0 0 0) (0 1 0 0) (0 0 1 0) (0 0 0 1)

0x000d: vec3: 0 0 0

0x000e: vec3: 0 0 0

0x000f: vec3: 0 0 0

0x0010: vec3: 0 0 0

0x0011: float: 1507.82

0x0012: vec3: 0 0 1

0x0013: vec3: 0 0 0

0x0014: dvec3: 9523.54 -1560.75 -2620.34

0x0015: dvec3: 0 0 0

0x0016: int: 0

0x0017: int: 0

0x0018: int: 0

0x0019: ObjectTerrain 02EE5C40 external (85:0:0)

0x001a: int: 992

0x001b: int: 991

0x001c: int: 0

0x001d: int: 0

0x001e: Property 00000000 external (109:-1:-1)

0x001f: Material 00000000 external (108:-1:-1)

0x0020: Object 00000000 external (80:-1:-1)

0x0021: int: 0

0x0022: int: 0

0x0023: string: ""

0x0024: Node 00000000 external (52:0:0)

0x0025: dvec3: 9723.16 -438.567 -2295.17

0x0026: dvec3: 0 0 0

0x0027: double: 48.3581

0x0028: Property 00000000 external (109:-1:-1)

0x0029: Material 00000000 external (108:-1:-1)

0x002a: Object 00000000 external (80:-1:-1)

0x002b: Node 00000000 external (52:-1:-1)

0x002c: NodeReference 00000000 external (55:-1:-1)

0x002d: Node 00000000 external (52:-1:-1)

0x002e: int: 0

0x002f: int: 0

0x0030: int: 0

0x0031: Object 00000000 external (80:-1:-1)

0x0032: Node 00000000 external (52:-1:-1)

0x0033: vec3: 0 0 0

0x0034: vec3: 0 0 0

0x0035: int: 0

0x0036: int: 0

0x0037: int: 0

0x0038: int: 0

Call stack:

00: 0x00052d50 Controls::place_node()

01: 0x000530d9 Controls::update()

02: 0x00053424 controlsUpdate()

03: 0x00053f33 update()

Disassemble:

0x00052e40: callef engine.visualizer.renderVector

0x00052e42: pop

0x00052e43: pushv s

0x00052e45: pushv r

0x00052e47: pushv t

Editor::update(): editor update function return 0

 

(Just a note that we have also tried this with the single-precision version and everything works correctly.)

Link to comment
×
×
  • Create New...