Atmega128 - przeglądarka modeli 3D

Miejsce dobre do dyskusji nad własnymi projektami - pochwal się wszystkim co samodzielnie stworzyłeś.
ODPOWIEDZ
ikko
-
Posty: 1
Rejestracja: 06 paź 2011, 15:19
Lokalizacja: pl

Atmega128 - przeglądarka modeli 3D

Post autor: ikko » 06 paź 2011, 17:09

Obrazek
Witam.
Przedstawiam konstrukcję wyświetlającą modele 3D. W tym projekcie mikrokontroler odczytuje modele zapisane w formacie OBJ
bezpośrednio z karty pamięci typu RS-MMC lub SD. Całość pełni funkcję miniprzeglądarki modeli OBJ.

Wybrany model po wczytaniu jest skalowany do rozmiarów okienka. Zapobiega to wychodzeniu modelu poza obszar ekranu lub wyświetlaniu modelu kilkupikselowego.
Następnie program wyznacza środek modelu, względem którego dokonuje potem obrotu.
Czasem punkt odniesienia (pivot) modelu wypada poza nim, co sprawia, że model orbituje podczas obrotu. Wyznaczenie nowego punktu odniesienia w środku modelu pozwala to wyeliminować.
Do rysowania linii wykorzystałem implementację algorytmu Bresenhama. Projekt obsługuje obiekty posiadające do 1000 wierzchołków.

Cel:
Chciałem opanować obsługę zewnętrznej pamięci RAM.
Chciałem opanować system plików oraz obsługę kart pamięci.
Chciałem zmierzyć się z plikami *.obj.

Hardware:
Podobnie jak poprzednio - całość napędza ATmega128 taktowana zegarem 16MHz.
Wyświetlacz ma rozdzielczość 240x128. Posiada sterownik Toshiba T6963C.
Pamięć RAM o pojemności 128KB 55ns + 74HC573 . Wykorzystywane jest 64KB.
Czytnik kart pamięci sterowany programowym SPI.

Wyzwania:
Obsługa kart pamięci,
Obsługa systemu plików,
Obsługa zewnętrznej pamięci RAM,
Interpretacja plików OBJ,
Odczyt i przepisywanie współrzędnych każdego wierzchołka do tablic,
Odczyt i zapisywanie wierzchołków wchodzących w skład kolejnych ścian.

Link z nagraniem:
video

Awatar użytkownika
kayron
Użytkownik
Posty: 2088
Rejestracja: 21 wrz 2008, 12:53
Lokalizacja: Poland
Kontakt:

Post autor: kayron » 06 paź 2011, 22:14

Niezłe.
W czym pisałeś program C ?
Jak na 16MHz to trochę ci obroty mało płynnie chodzą, ale ty chyba czyścisz ekran/okno przy rysowaniu nowego obiektu i to dla tego, zamiast tego zwyczajnie nadpisuj ekran nowym obrazem nie czyść go.
Ogólnie poczytać trochę o pisaniu gier 3D i będzie ci to działać z 15FPSami.

slawek55
Użytkownik
Posty: 475
Rejestracja: 16 sie 2005, 11:47
Lokalizacja: Szczecin

Post autor: slawek55 » 07 paź 2011, 5:10

Konstrukcja wałkowana na elektrodzie przez długi czas.
Pytanie po ct teraz na EdW?
http://www.elektroda.pl/rtvforum/topic2047647.html

Awatar użytkownika
kayron
Użytkownik
Posty: 2088
Rejestracja: 21 wrz 2008, 12:53
Lokalizacja: Poland
Kontakt:

Post autor: kayron » 07 paź 2011, 7:45

Konstrukcja wałkowana na elektrodzie przez długi czas.
Pytanie po ct teraz na EdW?
Być może autor szuka natchnienia do ulepszenia swojej aplikacji gdzie indziej, choć nie wiem czy w ten sposób nie złamał jakiegoś punktu na Elce, bo oni tam mają zjechane podejście.
Napisanie tego w BASCOM to już niezły wyczyn, choć pewnie optymalizacja jeszcze jest możliwa ale należałoby się przyjrzeć dokładniej możliwością samego wyświetlacza, no lepszy by był procesor który ma 8/16KB RAM w środku np. ATMega1284.
Z drugiej strony wiele zależy od tego jak bardzo ma zoptymalizowane obliczenia, sin, cos itp.
Ponieważ taki ogólny wzór do obrotu można zapisać na dwa sposoby szybszy i wolniejszy obliczeniowo.

ODPOWIEDZ