WorldViz User Forum

WorldViz User Forum (https://forum.worldviz.com/index.php)
-   Vizard (https://forum.worldviz.com/forumdisplay.php?f=17)
-   -   vizact move action (https://forum.worldviz.com/showthread.php?t=5210)

andreionutz 10-30-2014 09:27 AM

vizact move action
 
Hi,
I have a problem with using the move action in Vizard 4&5. the simple use case is i am navigating with the MainView through actions. I have viz.MainView.collision( viz.ON ) so that i don't go through walls, and in case of collision i cancel the current action and clear the action list. but i still move backwards (sometimes), away from the collision point. i looked a lot in the documentation and a bit in the vizact source code and i don't find a way to prevent this. on the contrary, i found a confirmation of the behavior in the VizMoveAction class.
how can i solve this? i want to keep things simple and not necessarily realistic, that's why i'm avoiding physics.
Best,
Andrei

andreionutz 10-30-2014 10:26 AM

no that i think of it, the problem is maybe less related to vizact and more to the model i'm using. i mentioned vizact because there i can see more clearily what's happening and it's where i spend my last hopes of solving the problem by myself. but i get the same behavior while navigating with the mouse. the model i have is a valid collada model and the normals are ok. i don't have the bounce back effect if the collision surface is aligned along the x/z axes, which i find really strange...

andreionutz 10-31-2014 07:41 AM

1 Attachment(s)
me again.
i stripped down my code to the very basic and still didn't find a solution. i can't see how anything could be wrong in the usage, but i posted the code below anyway. i also tried different models from 3D Warehouse and i could reproduce the problem.
attached is a very simple collada model i generate myself(rename to .dae). the normals are ok, but i still have the bumping effect when the wall is oblique. i think the problem is somewhere in the Vizard navigation code and has something to do with vector decomposition, otherwise i cannot explain why it's not happening when the wall is parallel with an axis...

Code:

import viz

viz.setOption('viz.model.apply_collada_scale',1)

world = viz.addChild('.\\..\\configs\maze3D.dae')
world.collideMesh()

env = viz.addEnvironmentMap('sky.jpg')
sky = viz.addCustomNode('skydome.dlc')
sky.texture(env)

viz.disable(viz.LIGHTING)

viz.MainView.collision(viz.ON)

viz.MainView.setPosition(3.02036, 0.00000, -0.08363)
viz.MainView.eyeheight(0.11)

viz.go()


andreionutz 11-04-2014 04:09 AM

Hi there,
i've been trying to different geometries, i've tried to use physics, nothing seems to work. can anyone tell me what am i doing wrong? is this bounce made by design? isn't there any way to avoid it?
i can split the move commands in smaller ones and manage to hide a bit the behavior, but still doesn't solve the problem.
any ideas? suggestions?

Jeff 11-04-2014 06:47 PM

I ran your example code with model and notice the viewpoint bounces when colliding with the edge of a wall. Is that what you are describing or does it occur at other times as well?

Jeff 11-04-2014 06:54 PM

Does changing the collision buffer affect the bounce you see?

andreionutz 11-05-2014 04:02 AM

hi Jeff,
a few details about the test/problem - i am getting towards the wall until collision. then i try to advance oblique against the wall. what i expect is to slide along. instead i slide and bounce at the same time. it happens on the whole length of the wall, as long as the wall is not parallel with one of the axis.
i already did try to change the collision buffer, but with no success. did it work for you? with what value?

andreionutz 11-07-2014 10:36 AM

since the problem is still not solved i thought to come with my latests feedback. i have an even simpler script to reproduce it:
Code:

import viz

viz.MainView.collision(viz.ON)
viz.MainView.collisionBuffer(1)

world = viz.add('lab.osgb')

#commenting this line makes the bouncing effect dissapear
world.setEuler(30, 0, 0)

viz.go()

i think that it's a bug and it has to do with using the wrong (global) coordinates when calculating the collision. that's why it works when the the walls are parallel with the axes. but this is code i cannot see and i wouldn't be able to change it anyway.

or maybe i'm wrong...

any other ideas?

thank you,
andrei

Jeff 11-07-2014 04:49 PM

Thanks for the simple example. I'll check with a developer about this.

andreionutz 11-12-2014 07:39 AM

thank you for support. looking forward for the solution.
don't hesitate to contact me in case you need more details.

Jeff 11-14-2014 12:34 PM

Sorry, I don't have a solution to provide here. This is a limitation of viewpoint collision.

andreionutz 11-14-2014 12:58 PM

so what would you suggest?

Jeff 11-14-2014 02:04 PM

If the walls are only slightly off parallel from the XZ axes the following may be an option. Use two models, one for the visible geometry and another that's not rendered and used for collision detection. The collision model surfaces would need to be parallel to the XZ surfaces and there would be a displacement between the visible and collision meshes.

andreionutz 11-19-2014 03:54 AM

i have no restrictions for the geometries, and actually very little knowledge about the model as a whole. the user can generate 3d content and use it, and therefore the walls can be anything.


All times are GMT -7. The time now is 02:54 AM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2021, vBulletin Solutions, Inc.
Copyright 2002-2018 WorldViz LLC