miércoles, 19 de julio de 2023

Mi aventura en 3D Rendering

La primerá vez que experimenté con 3D fue en QBasic cuando hice algunos dibujos ortogonales, y noté que podía usar el teorema de Pitágoras para hacer movimimentos ondulados, y ví una relación entre el eje Z y las tangentes al crear una proyección 3D. Luego perdí el interés.

Ese interés se reinició al investigar sobre los Shaders en Löve2D

Como forma de agradecimiento (y recordatorio), decidí apuntar todos los enlaces que me han ayudado en esta aventura, que aún no termina.


Löve 2D  v0.10.2
The Book Of Shaders

"3D projection on a 2D canvas", January-May 2019, xem.github.io
"Vanilla Javascript 3D cube", part 1 & 2, by dionyziz

"Coding Challenge #112: 3D Rendering with Rotation and Projection", by The Coding Train
"Camera/View Space", by OGLDEV

pikuma:
 - Perspective Projection Matrix (Math for Game Developers)
 - 3D Software Rendering Graphics Pipeline
 - Math for Game Developers: Fundamentals of Calculus

The Organic Chemistry Tutor:
 - How To Find The Equation of a Plane Given Three Points
 - How To Find The Point Where a Line Intersects a Plane
 - Cross Product of Two Vectors Explained
 - Dot Product of Two Vectors

"Determinante de una matriz 4x4. Método de GAUSS", por Matemáticas fáciles
"Recta perpendicular a un plano", por andmaths
"Ecuación del plano dado un punto y un vector perpendicular", por La Prof Lina M3
"Angulo entre dos vectores | Ejemplo 1", Matemáticas profe Alex

https://www.cs.toronto.edu/~jacobson/phong-demo/
https://github.com/ruange/Gouraud-Shading-and-Phong-Shading
https://www.robots.ox.ac.uk/~att/index.html (by TimJ/Vertigo)


Menciones Especiales:
- Phong Shading (by Bui Tuong Phong)
- "Smooth Shading", by GuerrillaCG
- "pov: you're coding a 3d engine", by Not the Future
- "The Math behind (most) 3D games - Perspective Projection", by Brendan Galea
- "Blinn Phong Shading: Theory and Implementation [Shaders Monthly #4]", by GSN Composer 

http://graphics.cs.cmu.edu/nsp/course/15-462/Spring04/slides/06-viewing.pdf
- Sutherland‐Hodgman
- Weiler-Atherton
- Cohen-Sutherland Algorithm
- 3D Rendering with Binary Space Partitions (by Quothmar)

- Super Fast Ray Casting in Tiled Worlds using DDA, por javidx9
- Making my First RAYCASTING Game in C++ - SFML Gamedev - Devlog 1, por Kofybrek