WorldViz User Forum

WorldViz User Forum (https://forum.worldviz.com/index.php)
-   Vizard (https://forum.worldviz.com/forumdisplay.php?f=17)
-   -   Cube Map Coordinates (https://forum.worldviz.com/showthread.php?t=4619)

mshukun 06-05-2013 10:17 AM

Cube Map Coordinates
 
Might anyone know what coordinate system is applied in the cube map? The code below was kindly provided to me using this forum, but I need to know the actual coordinate system used in the cube map in order to perform further downstream processes. For instance, if a spherical coordinate system is used in the cube map, how can I find radius of the sphere? On the other hand, if a cube coordinate system is used, how can I ascertain the height, width and depth of the cube map? (Thanks in advance for any assistance you can provide in this regard, which is greatly appreciated.)

Code:

import viz
import vizmat
import vizshape

viz.go()

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

viz.link( viz.Mouse , viz.addTexQuad(viz.SCREEN,texture=viz.add('crosshair.png')) )
viz.mouse.setVisible(viz.OFF)

def placeMarker():
line = viz.MainWindow.screenToWorld(viz.mouse.getPosition())
pos = vizmat.MoveAlongVector(line.begin,line.dir,40)
shape = vizshape.addCircle()
shape.color(viz.GREEN)
shape.billboard()
shape.setPosition(pos)
print shape.getPosition()
#place a marker when the left mouse is pressed
vizact.onmousedown(viz.MOUSEBUTTON_RIGHT,placeMarker)

import vizcam
vizcam.PanoramaNavigate()

Image: Spherical coordinate vs Cube coordinate
http://screencast.com/t/hSkab1MNKk

Jeff 06-10-2013 05:07 PM

Do you want the dimensions of the box that the textures are applied to?

mshukun 06-12-2013 08:19 AM

Thank you very much for your kind reply.

Please disregard my question, as I subsequently figured out that the coordinate system used in the cube map involves neither cube nor spherical coordinates, but instead something more like the quadrilateralized spherical cube or continuous cube map coordinates.

I have been trying to convert given world coordinates (for user-created place marks in the cube map) to flat images of six faces in order to save user-created place marks in image format using PIL. However, I have been having difficulties converting the Y value to a flat image, and I now assume that I need to find 2D texture coordinates (S and T) of each place mark instead of world coordinates.

I truly appreciate if you could provide me ways to achieve the task above, i.e. "finding 2D texture coordinates (S and T) of each place mark instead of world coordinates".

Thank you again so much! I truly appreciate your help.

Jeff 06-13-2013 10:33 AM

Perhaps you can add a cube that is sized to match where the marks are placed. Then you can get which face of the cube and position of the cube using viz.pick. You could then perform some calculations to normalize the pick location to match texture coordinates. In the following example the cube is not visible because the viewpoint is inside it and back faces are not rendered by default:

Code:

import viz
import vizshape
import vizact

viz.go()

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

vizshape.addGrid()

cube = vizshape.addCube(size=80,splitFaces=True)

def getPickInfo():
        info = viz.pick(info=True)
        print 'name',info.name
        print 'point',info.point
       
vizact.onmousedown(viz.MOUSEBUTTON_LEFT,getPickInfo)


mshukun 06-21-2013 07:59 AM

Thank you for your help! I have tested provided code and was able to generate place markers on flat cube images!! I was trying to figure out how to do it for a month so it was a huge help!!

Thank you so much!!


All times are GMT -7. The time now is 11:58 AM.

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