Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Proyeccion 3D a 2D en D3D8

Iniciado por ElQueSeRompeElOrto, 02 de Diciembre de 2002, 05:34:07 AM

« anterior - próximo »

ElQueSeRompeElOrto

                                Hola ,soy nuevo en estos pagos de los foros de stratos ,por eso me presento ,soy "el que se rompe el Orto (o culo)" no es por joder o algo por el estilo ,pero a la ora de buscarme un Nick no encontre otro que me encaje mejor que este :D.

Bueno les cuento que tengo un problema en D3D8 para proyectar un punto 3D a 2D .Con la funcion de la D3DX para proyectar ,esta me realiza
una proyeccion en un sistema raro de ejes 2D de D3D8 en el cual el origen esta en el centro de la pantalla y no en la esquina superior izquierda de la misma, he buscado un poco pero en la doc. de la API pero
no encontre nada ,no lo se quizas me rompo tanto el te tuje , que ya no cordino bien el trafico de ondas cerebrales.

Bueno Un Saludo y si alguien sabe algo y contesta estare muy agradecido.                                

_Grey

                                No entiendo lo que quieres decir......  :(  

En un sistema 3D el origen esta en el CENTRO de la pantalla..... :I

con lo que esa funcion funciona bien ... nop?¿                                

ElQueSeRompeElOrto

                                Tratare de ser mas claro:

La funcion "D3DXvec3Project()" ,toma un punto 3D ,osea en el espacio,
y lo proyecta al espacio de la pantalla ó "screen cordinates",ahora bien,
las cordenadas que me devuelve esta funcion no son las convensionales, sino unas extrañas cuyo origen esta en el centro de la pantalla y no en la esquina superior.
Pongo un ejemplo: Si un punto proyectado aparece en el centro de la pantalla ,y si la resolucion es de 800x600 las cordenadas deberian ser
(X=400 ,Y=300) , pero la funcion "D3DXvec3Project()" me devuelve
(X=0 ,Y=0) , y si por otro punto aparece en la esquiena superior izquierda
las cordenadas deverian ser (X=0,Y=0), pero la funcion que mencione
me da por ejemplo (X=-2300 ,Y=1300) ,en definitiva otro sistema de cordenadas. bien si alguien sabe como convertir esas unidades o conoce
otra funcion y/o algoritmo les agradecere mucho.
Un saludo.                                

mac^threepixels

                                te falta la transformacion de viewport que es la que mapea de coordenas proyectivas a pantalla

xf = xo*resx/2 + resx/2
yf = xo*resy/2 + resy/2                                
----------------------------------
mac^threepixels
http://www.threepixels.org

mac^threepixels

                                yf = yo*resy/2 + resy/2

quiero decir                                
----------------------------------
mac^threepixels
http://www.threepixels.org

ElQueSeRompeElOrto

                                Gracias "mac^threepixels" ,espere la respuesta pero llego ReMilGraciaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaassssssssssssssss. :D                                






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.