Diseño 3D con API GDI32

Bueno como menciono y quizas me den una jalada de orejas,porque el tema tiene muy poco de electronica pero en realidad ya no tengo a quien recurrir, anduve unos cuantos dias navegando por la red y ya casi me aprendi todas las paginas relacionadas con renderizacion, hackers , programadores y no encuentro nada, creanme este mi ultimo recurso que tengo, y contando con que para mi aquí es el centro mundial del conocimiento me atrevo a preguntar.....

resulta que estoy haciendo un programa de con GDi32 la api de microsoft http://es.wikipedia.org/wiki/Graphics_Device_Interface

El asunto es hacer varios polígonos vectoriales en forma tridimensional con rotación y traslación dentro de un plano....

bueno pues casi tengo todo bien los algoritmos de graficado con la API GDI32, los cálculos de traslación, pero estoy atorado con la rotación... el asunto esta que dentro de un plano cartesiano puedo colocar varios objetos o figuras tridimensionales que rotan con respecto a un eje....

los cálculos vectoriales de rotación ya están el problema es que cuando un objeto se rota y se superpone a otro objeto la API no determina cual debe colocar primero sino que los polígonos se deben empezar a dibujar del punto Z mas lejano o -Z hasta +Z, asi es que como rayos podría con cálculos trigonométricos determinar que objeto esta mas alejado con respecto a otro.... bueno espero que haya sido claro.... y alguien pudiera echarme una mano.... pues ya se me acabaron las Aspirinas...

bueno.... para dar una idea mas clara de mi objetivo.... es que quiero hacer un programa parecido a este http://www.anim8or.com/main/index.html
pero sin el motor de renderizacion por ahora....
Saludos....
 
creo que lo que necesitas no es el gdi32 si no el glu32

el glu32 es el opengl y controla todo lo que dices incluido la iluminacion
 
si considere el opengl, e incluso me oriento un poco mas por el Directx 3d pero me topo con un problema... como las figuras que quiero formar son en su mayoria cubos con pequeñas formas dentro de su cuerpo con direct3d necesito triangular las posiciones de c/u, claro obtendría una renderizacion y una velocidad excelente, pero los cálculos para formar las figuras serian un tanto complicados... por eso me conformo con el gdi32, que tiene una calidad digamos amateur la desventaja únicamente es esa.... que opengl y direct automáticamente tapa la figura de la parte de atrás y muestra la de adelante..... incluso el programa que puse en el link trabaja con gdi, y la renderizacion la hace con opengl.... hasta donde pude observar.... no se!!!!, quizás no haya otra opción... y tenga que irme por ahí...
 
el problema reside que entonces tienes que hacerlo por capas
una para la que se ve
otra para lo que no se ve
otra para las lineas de tercera instancia que son proporcionales en tamaño
segun la vista que elijas
creo que el el gdi32 solo sirve para el 2D
al usar opengl no necesitas usar necesariamente directx
para renderizar una escena en opengl necesitas usar esas 3 apis creo
glClear
glPushMatrix,glPopMatrix
glEnable

busca "sphere in gdi" para que te hagas una idea de como seria el algoritmo

pd hay foros de software para esto
 
creo que el el gdi32 solo sirve para el 2D
si... es asi ,es solo para 2d y los calculos son trigonometricos... eh de ahi el porque no puede determinar, como bien mencionas, la capa a poner....

busca "sphere in gdi" para que te hagas una idea de como seria el algoritm
le voy a dar una revisada a ver si de plano convenzo a mi otro yo de ya no andar quebrando me la cabeza y hacerlo de una buena vez bien....
lo que me da mas lastima es que ya casi estaba lista mi ocx y estaba quedando de maravilla...... hasta que tope con ese ultimo problema....:cabezon:
 
Última edición:
Bueno ya pude crear varios cubos con directx y Opengl, creo que que resolvi el problema si continuo con exito posteare mis resutados para futuros interesados.... entiendo que es un foro de electronica pero el conocimiento de varios temas nunca estan de mas.....
por el momento me resta dar un total agradecimiento a frankkm y un afectuoso abrazo...
gracias frank
saludos....
 
Atrás
Arriba