Utilizatorul se va putea plimba prin aceasta scena folosind maneta de joystick si cele 3 butoane.
Scopul principal al proiectului este de a incorpora cat mai multe functionalitati ale unui 3D renderer in memoria de program de 32K al unui Arduino Uno, si randarea in timp real la un framerate acceptabil.
Lista de componente:
Poligoanele ce alcatuiesc scena vor fi tinute in memoria programului. Calculele vor fi efectuate folosind numere cu virgula fixa, intrucat placa Arduino Uno nu dispune de un (co)procesor matematic dedicat, iar utilizarea calculelor cu virgula mobila ar fi extrem de lenta, ceea ce nu este de dorit intr-un sistem real-time.
Numerele ce reprezinta componentele vectorilor pentru pozitii si viteze vor fi pe 16 biti, virgula fixa, 8 biti dupa virgula. Numerele ce reprezinta componentele vectorilor unitari (asadar, orientarea observatorului: up, look, right) vor fi tot pe 16 biti in virgula fixa, dar cu 14 biti dupa virgula. Sinusurile si cosinusurile vor fi pastrate cu 15 biti dupa virgula.
Dupa initializarea driver-ului pentru afisarea de primitive (linii) pe display, va incepe randarea. In functia loop, au loc 3 procesari importante: