Buff pues si que es intersante si!!!, el problema es escanearlo...
Gracias Radastán, miraré a ver si hay suerte y existe en algún sitio... quizás en un FTP o algo, está esta colección.
Motorcillo 3D para Spectrum.
- mentalthink
- Amiga 2500
- Mensajes: 2840
- Registrado: 11 Abr 2010, 15:06
- Gracias dadas: 45 veces
- Gracias recibidas: 14 veces
Re: Motorcillo 3D para Spectrum.
mcleod_ideafix escribió:Ah! creo que ya lo tengo.
"v" define vértices en 3D. Eso estaba claro.
Las "vn" son las normales como dijimos. No las necesitamos.
"f" son los polígonos. El primer "f" por ejemplo es para pintar el cuadrado de la base de la pirámide. Los números entre // son los índices de los vértices que usa para dibujarlo, y el orden en que deben dibujarse. Hay un cuadrado (primer "f", que usa 4 vértices) y luego cuatro triángulos (las caras laterales de la pirámide) que usan 3 vértices cada una.
Tal como está el fichero, sí, es posible convertir eso a una lista de vértices 2D, pero habría que optimizar la generación para no generar líneas repetidas. Por ejemplo, en tu pirámide, cada triángulo que comprende una cara lateral tiene en común un lado con la base y otro lado con el siguiente triángulo. Habría que detectar estas repeticiones para no añadirlas al listado de vértices final. Esto se puede detectar fácilmente en la lista de "f" del fichero. Por ejemplo:Código: Seleccionar todo
f 2//2 1//1 3//3 5//5
OK. Se convierte a un polígono que une los vértices 2-1-3-5-2 (cuatro líneas)Código: Seleccionar todo
f 3//3 4//4 5//5
La línea que va de 5 a 3 (último a primer vértice) ya está incluida en el primer polígono (3 a 5), así que no se pinta. Se convierte por tanto a 3-4-5 (dos líneas)Código: Seleccionar todo
f 4//4 3//3 1//1
La línea 4-3 está incluida en el polígono anterior (3-4). La línea 3-1 está incluida en el primer polígono (1-3). Este polígono se renderiza como 1-4 (una línea)Código: Seleccionar todo
f 4//4 1//1 2//2
Análogo al anterior. 4-1 y 1-2 ya están incluidas en anteriores polígonos. Se renderiza como 2-4 (una línea)Código: Seleccionar todo
f 5//5 4//4 2//2
Todas las líneas que se definen aquí ya está incluidas en polígonos anteriores. No se renderiza.
Total, 8 líneas hay que renderizar (lo mínimo como se puede comprobar, para dibujar una pirámide rectangular)
Que bien

Entonces ¿podrias pintarla tal y como esta? necesito saber cuantas lineas de vblank lleva pintarlo para saber cuando porcentaje de CPU queda libre en un frame. en ASM por supuesto.
Sino te hago otro objeto en perspectiva o algo.
Y el ninja purpura sigue buscando nuevas aventuras.
- mcleod_ideafix
- Amiga 2500
- Mensajes: 5316
- Registrado: 06 Oct 2009, 04:12
- Sistema Favorito: Spectrum 16Kb/48Kb
- primer_sistema: Spectrum 16Kb/48Kb
- consola_favorita: Vectrex
- Primera consola: TV Games/Pong Clone
- Ubicación: Jerez de la Frontera
- Gracias dadas: 12 veces
- Gracias recibidas: 54 veces
- Contactar:
Re: Motorcillo 3D para Spectrum.
Toniman escribió:Que bien![]()
Entonces ¿podrias pintarla tal y como esta?
Casi. Lo que no sé es la posición de la cámara y su vector. Es decir, qué orientación tiene la pirámide. La puedo dibujar desde arriba, desde abajo, desde un lateral, etc. Esto es necesario para poder hacer la transformación de perspectiva que nos dará los puntos 2D, pero si pretende que también haga eso, entonces tendrás que esperar un poco. Mi ofrecimiento de ayuda era con el ASM para que vieras cómo pintar líneas, no con la transformación de objetos 3D a 2D.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista
Re: Motorcillo 3D para Spectrum.
Ok, Mc_leod, espera que haga una cosa, solo quiero pintado de lineas, ahora en un rato te mando una cosa por aqui.
Y el ninja purpura sigue buscando nuevas aventuras.
- mcleod_ideafix
- Amiga 2500
- Mensajes: 5316
- Registrado: 06 Oct 2009, 04:12
- Sistema Favorito: Spectrum 16Kb/48Kb
- primer_sistema: Spectrum 16Kb/48Kb
- consola_favorita: Vectrex
- Primera consola: TV Games/Pong Clone
- Ubicación: Jerez de la Frontera
- Gracias dadas: 12 veces
- Gracias recibidas: 54 veces
- Contactar:
Re: Motorcillo 3D para Spectrum.
Toniman escribió:Mc_Leod, yo cuando hago un objeto, me sale este codigo
Una curiosidad: este código, ¿qué programa lo genera?
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista
Re: Motorcillo 3D para Spectrum.
El codigo del objeto anterior lo genero con Lightwave 3D, este que te mando lo he hecho renderizando una perspectiva y contando los vertices a mano en el programa de dibujo.
He creado 3 frames, cada frame tiene los siguientes vertices, pondre primero las coordenadas de los vertices horizontales y luego los verticales y diagonales, son coordenadas 2D de la pantalla del spectrum( : y x son lo mismo):
Frame 1
0:40 a 255:40
0:63 a 255:63
0:128 a 255:128
0:151 a 255:151
16:40 a 16:151
16:40 a 63:63
16:151 a 63:128
63:63 a 63:128
128:40 a 128x151
192x63 a 192x128
192x63 a 239x40
192x128 a 239x151
239x40 a 239x151
Bueno, con este frame ya podemos saber cuanto lleva en dibujarlo.
He creado 3 frames, cada frame tiene los siguientes vertices, pondre primero las coordenadas de los vertices horizontales y luego los verticales y diagonales, son coordenadas 2D de la pantalla del spectrum( : y x son lo mismo):
Frame 1
0:40 a 255:40
0:63 a 255:63
0:128 a 255:128
0:151 a 255:151
16:40 a 16:151
16:40 a 63:63
16:151 a 63:128
63:63 a 63:128
128:40 a 128x151
192x63 a 192x128
192x63 a 239x40
192x128 a 239x151
239x40 a 239x151
Bueno, con este frame ya podemos saber cuanto lleva en dibujarlo.
Y el ninja purpura sigue buscando nuevas aventuras.
- mcleod_ideafix
- Amiga 2500
- Mensajes: 5316
- Registrado: 06 Oct 2009, 04:12
- Sistema Favorito: Spectrum 16Kb/48Kb
- primer_sistema: Spectrum 16Kb/48Kb
- consola_favorita: Vectrex
- Primera consola: TV Games/Pong Clone
- Ubicación: Jerez de la Frontera
- Gracias dadas: 12 veces
- Gracias recibidas: 54 veces
- Contactar:
Re: Motorcillo 3D para Spectrum.
Una prueba rápida en BASIC para probar el dibujo que me has dado...
Resulta en este dibujo:
Aunque es BASIC, te puedes hacer una idea de la velocidad ejecutando este programa (hasta que tenga escrita la versión para C/M).
Resulta en este dibujo:
Aunque es BASIC, te puedes hacer una idea de la velocidad ejecutando este programa (hasta que tenga escrita la versión para C/M).
- Adjuntos
-
- prueba_render_basic.zip
- (1.88 KiB) Descargado 532 veces
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista
Re: Motorcillo 3D para Spectrum.
Eso es exactamente el dibujo
Muchas gracias.

Muchas gracias.
Y el ninja purpura sigue buscando nuevas aventuras.
Re: Motorcillo 3D para Spectrum.
mentalthink escribió:Pues a mi por lo que me toca me interesa mucho esto que comentáis sobre todo el libro que comenta Jepalza...
No, es este otro: (la portada está escaneada del mio original, si, si, de papel, de esos que ya no se llevan)
( y no debería decirlo, pero es fácil de buscar

Edito: veo que radastan tambien ha contestado sobre el libro. Se nota a quienes nos ha gustado ....

- Adjuntos
-
- _portada.jpg (34.88 KiB) Visto 7518 veces
Re: Motorcillo 3D para Spectrum.
Toniman escribió: Por favor Jepalza si te ha parecido que yo he dado señales de molestia en algun momento, no es asi, ya que yo creo que en un principio no me estaba explicando bien,.
No importa, ya ves que tampoco me lo he tomado mal, y he seguido ayudando en lo posible.
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 14 invitados