-
1. Data: 2012-12-01 11:39:40
Temat: 3d -> 2d
Od: firr kenobi <p...@g...com>
Ostatnio naszła mnie idea by podzialac troche w
softwarowym rasteryzerze, tj zrobic sobie prosty,
(prosty framework do 2d mam juz zrobiony, o tyle
prosty rasteryzer z kulkami czy trojkatami to
nie jest juz tak duzo roboty
https://dl.dropbox.com/u/42887985/soft.zip
potrzebuje jednakze wzorku na rrzutowanie
wspolrzednych 3d na ekran 2d dla danego
ustawienia kamery
kamera jest u mnie opisana przez:
float3 cameraPos = {0,0,0};
float3 cameraDir = {0,0,-1};
float3 cameraUp = {0,1,0};
float3 cameraLeft = {1,0,0};
jak zrzutowac
float3 wierzcholek = {-20, -10, 200};
na ekran dla danych ustawien kamery?
-
2. Data: 2012-12-01 12:10:26
Temat: Re: 3d -> 2d
Od: firr kenobi <p...@g...com>
W dniu sobota, 1 grudnia 2012 11:39:40 UTC+1 użytkownik firr kenobi napisał:
> Ostatnio naszła mnie idea by podzialac troche w
>
> softwarowym rasteryzerze, tj zrobic sobie prosty,
>
> (prosty framework do 2d mam juz zrobiony, o tyle
>
> prosty rasteryzer z kulkami czy trojkatami to
>
> nie jest juz tak duzo roboty
>
>
>
> https://dl.dropbox.com/u/42887985/soft.zip
>
>
>
> potrzebuje jednakze wzorku na rrzutowanie
>
> wspolrzednych 3d na ekran 2d dla danego
>
> ustawienia kamery
>
>
>
> kamera jest u mnie opisana przez:
>
>
>
> float3 cameraPos = {0,0,0};
>
> float3 cameraDir = {0,0,-1};
>
> float3 cameraUp = {0,1,0};
>
> float3 cameraLeft = {1,0,0};
>
>
>
> jak zrzutowac
>
>
>
> float3 wierzcholek = {-20, -10, 200};
>
>
>
> na ekran dla danych ustawien kamery?
ok, nie zastanowilem sie i wydawalo mi sie
to trudniejsze niz jest - wystarczy chyba odjac wierzcholek od cameraPos po czym
zrzutowac na cameraUp i cameraLeft
9jestem niby dobrej mysli co do takiej
softowej rasteryzacji ale z prymitywami
jest troche (tj duzo) dlubaniny, np
ja rysuje kulki (tj lito wypelnione
okregi takim algorytmem
void DrawFillCircle(int x1, int y1, int radius, unsigned color)
{
int x = 0; //0
int y = radius; //1
int d1 = 3 - (2 * radius);
do
{
if (d1 < 0) d1 += (x<<2) + 6;
else d1 += ((x-(y--))<<2) + 10;
drawPozioma(y1+x, x1-y, x1+y, color);
drawPozioma(y1-x, x1-y, x1+y, color);
drawPozioma(y1+y, x1-x, x1+x, color);
drawPozioma(y1-y, x1-x, x1+x, color);
x++;
}
while(x<y);
}
niestety dla malych promieni (i to nie takich malych <10 ) kulki wychodza brzydko i
tak samo
brzydko wychodzą zmiany ich rozmiaru (nie ma
tu zadnego antyaliasingu ) czy ktos zma moze
szybki algorytm na ladniejsze kulki ?
-
3. Data: 2012-12-01 13:27:19
Temat: Re: 3d -> 2d
Od: Michoo <m...@v...pl>
On 01.12.2012 12:10, firr kenobi wrote:
>
> ok, nie zastanowilem sie i wydawalo mi sie
> to trudniejsze niz jest - wystarczy chyba odjac wierzcholek od cameraPos po czym
zrzutowac na cameraUp i cameraLeft
Zobacz "the OpenGL graphics system: a specification" Jest cały rozdział
o transformacji współrzędnych.
> szybki algorytm na ladniejsze kulki ?
O tym jak działa wypełnianie też jest.
--
Pozdrawiam
Michoo
-
4. Data: 2012-12-01 17:53:00
Temat: Re: 3d -> 2d
Od: firr kenobi <p...@g...com>
>
> brzydko wychodzą zmiany ich rozmiaru (nie ma
> tu zadnego antyaliasingu ) czy ktos zma moze
> szybki algorytm na ladniejsze kulki ?
co ciekawe, to ma calkiem duza wydajnosc,
potrafi uciagnac u mnie (na starym jednordzeniaku) przy w miare rozsadnej
plynnosci 100k kulek :O - to jest mz duzo
(ale bez depthbufora, z tym mocno zmuli
tak samo na trojkatach na pewno mocno zmuli)
-
5. Data: 2012-12-01 18:25:41
Temat: Re: 3d -> 2d
Od: bartekltg <b...@g...com>
W dniu 2012-12-01 11:39, firr kenobi pisze:
> Ostatnio naszła mnie idea by podzialac troche w
> softwarowym rasteryzerze, tj zrobic sobie prosty,
> (prosty framework do 2d mam juz zrobiony, o tyle
> prosty rasteryzer z kulkami czy trojkatami to
> nie jest juz tak duzo roboty
Parser mi się wyłożył. Nie zamknąłeś nawiasu, nie
kontynuowałeś myśli sprzed nawiasu. Wdałeś się
w dygresję i zapomniałeś napisać, o co chodzi.
...zrobić sobie prosty _co_?
Czytaj posty przed wysłaniem.
> potrzebuje jednakze wzorku na rrzutowanie
> wspolrzednych 3d na ekran 2d dla danego
> ustawienia kamery
>
> kamera jest u mnie opisana przez:
> float3 cameraPos = {0,0,0};
> float3 cameraDir = {0,0,-1};
> float3 cameraUp = {0,1,0};
> float3 cameraLeft = {1,0,0};
A co znaczą te punkty?
Rozumiem, że pos to położenie środka (wyróżnionego
punktu), dir to kierunek patrzenia, up i left to
ścianki kamery.
{dir, up, left} są wzajemnie prostopadłe.
> jak zrzutowac
>
> float3 wierzcholek = {-20, -10, 200};
>
> na ekran dla danych ustawien kamery?
No to nic prostszego.
Zakładam, że wektory są stojące. ' to transpozycja, * mnożenie.
{dir, up, left} są prostopadłe i odpowiednio wyskalowane.
X - punkt do obróbki.
X2 = X - Pos.
Cle = (Left')*X2 (czyli po ludzku, dostajemy liczbę w wyniku
dodania przemnożonych współrzędnych
left.x * X2.x + left.y * X2.y +left.z * X2.z)
Cup = (Up')*X2
Dodatkowo, jeśli chcesz wiedzieć, czy punkt nie jest czasem
za kamerą, liczysz Cdi = (Dir')*X2. Jeśli jest dodatni, jest
przed kamerą, jeśli ujemny, za. Jeśli ==0, to punkt jest na
powierzchni kamery.
Można to zapisać macierzowo
[Cle;Cup; Cdi] = [left'; up'; dir] * (X-Pos)
Macierz ze środka składa się z wektorów leżących (obróconych)
jeden na drugim.
Jeśli zamiast wektorów w 3D użyjesz sztuczki z dodatkowym wymiarem,
zawsze równym 1, czyli
X = {x; y; z; 1}
to możesz stworzyć jedną macierz rzutowania na kamerę:
M = [left', 0; up', 0; dir, 0; 0,0,0,1] *
* [ 1,0,0,-pos_x; 0,1,0,-pos_y; 0,0,1,-pos_z; 0,0,0,1 ]
A taka operacja ma najprawdopodobniej wsparcie sprzętowe.
Chociaż pierwsza wersja nie wykonuje niepotrzebnych obliczeń,
nie wiem, którą się obecnie używa.
pzdr
bartekltg
-
6. Data: 2012-12-01 18:43:22
Temat: Re: 3d -> 2d
Od: bartekltg <b...@g...com>
W dniu 2012-12-01 18:25, bartekltg pisze:
> W dniu 2012-12-01 11:39, firr kenobi pisze:
>> Ostatnio naszła mnie idea by podzialac troche w
>> softwarowym rasteryzerze, tj zrobic sobie prosty,
>> (prosty framework do 2d mam juz zrobiony, o tyle
>> prosty rasteryzer z kulkami czy trojkatami to
>> nie jest juz tak duzo roboty
>
>
> Parser mi się wyłożył. Nie zamknąłeś nawiasu, nie
> kontynuowałeś myśli sprzed nawiasu. Wdałeś się
> w dygresję i zapomniałeś napisać, o co chodzi.
> ...zrobić sobie prosty _co_?
>
> Czytaj posty przed wysłaniem.
>
>> potrzebuje jednakze wzorku na rrzutowanie
>> wspolrzednych 3d na ekran 2d dla danego
>> ustawienia kamery
>>
>> kamera jest u mnie opisana przez:
>
>> float3 cameraPos = {0,0,0};
>> float3 cameraDir = {0,0,-1};
>> float3 cameraUp = {0,1,0};
>> float3 cameraLeft = {1,0,0};
>
>
> A co znaczą te punkty?
> Rozumiem, że pos to położenie środka (wyróżnionego
> punktu), dir to kierunek patrzenia, up i left to
> ścianki kamery.
>
> {dir, up, left} są wzajemnie prostopadłe.
> > jak zrzutowac
> >
> > float3 wierzcholek = {-20, -10, 200};
> >
> > na ekran dla danych ustawien kamery?
>
>
> No to nic prostszego.
> Zakładam, że wektory są stojące. ' to transpozycja, * mnożenie.
>
> {dir, up, left} są prostopadłe i odpowiednio wyskalowane.
>
> X - punkt do obróbki.
>
> X2 = X - Pos.
>
> Cle = (Left')*X2 (czyli po ludzku, dostajemy liczbę w wyniku
> dodania przemnożonych współrzędnych
> left.x * X2.x + left.y * X2.y +left.z * X2.z)
>
> Cup = (Up')*X2
>
> Dodatkowo, jeśli chcesz wiedzieć, czy punkt nie jest czasem
> za kamerą, liczysz Cdi = (Dir')*X2. Jeśli jest dodatni, jest
> przed kamerą, jeśli ujemny, za. Jeśli ==0, to punkt jest na
> powierzchni kamery.
>
> Można to zapisać macierzowo
>
> [Cle;Cup; Cdi] = [left'; up'; dir] * (X-Pos)
>
> Macierz ze środka składa się z wektorów leżących (obróconych)
> jeden na drugim.
>
> Jeśli zamiast wektorów w 3D użyjesz sztuczki z dodatkowym wymiarem,
> zawsze równym 1, czyli
> X = {x; y; z; 1}
>
> to możesz stworzyć jedną macierz rzutowania na kamerę:
> M = [left', 0; up', 0; dir, 0; 0,0,0,1] *
> * [ 1,0,0,-pos_x; 0,1,0,-pos_y; 0,0,1,-pos_z; 0,0,0,1 ]
>
> A taka operacja ma najprawdopodobniej wsparcie sprzętowe.
> Chociaż pierwsza wersja nie wykonuje niepotrzebnych obliczeń,
> nie wiem, którą się obecnie używa.
A, żeby nie było nieporozumień, to jest rzut stereoskopowy.
Taki jak w starym X-Com;)
Założyłem, że o to chodzi, bo dla normalnej kamery
potrzebujesz jeszcze jednego punkty definiującego kamerę.
pzdr
bartekltg
-
7. Data: 2012-12-01 18:44:45
Temat: Re: 3d -> 2d
Od: bartekltg <b...@g...com>
W dniu 2012-12-01 18:25, bartekltg pisze:
> W dniu 2012-12-01 11:39, firr kenobi pisze:
>> Ostatnio naszła mnie idea by podzialac troche w
>> softwarowym rasteryzerze, tj zrobic sobie prosty,
>> (prosty framework do 2d mam juz zrobiony, o tyle
>> prosty rasteryzer z kulkami czy trojkatami to
>> nie jest juz tak duzo roboty
>
>
> Parser mi się wyłożył. Nie zamknąłeś nawiasu, nie
> kontynuowałeś myśli sprzed nawiasu. Wdałeś się
> w dygresję i zapomniałeś napisać, o co chodzi.
> ...zrobić sobie prosty _co_?
>
> Czytaj posty przed wysłaniem.
>
>> potrzebuje jednakze wzorku na rrzutowanie
>> wspolrzednych 3d na ekran 2d dla danego
>> ustawienia kamery
>>
>> kamera jest u mnie opisana przez:
>
>> float3 cameraPos = {0,0,0};
>> float3 cameraDir = {0,0,-1};
>> float3 cameraUp = {0,1,0};
>> float3 cameraLeft = {1,0,0};
>
>
> A co znaczą te punkty?
> Rozumiem, że pos to położenie środka (wyróżnionego
> punktu), dir to kierunek patrzenia, up i left to
> ścianki kamery.
>
> {dir, up, left} są wzajemnie prostopadłe.
> > jak zrzutowac
> >
> > float3 wierzcholek = {-20, -10, 200};
> >
> > na ekran dla danych ustawien kamery?
>
>
> No to nic prostszego.
> Zakładam, że wektory są stojące. ' to transpozycja, * mnożenie.
>
> {dir, up, left} są prostopadłe i odpowiednio wyskalowane.
>
> X - punkt do obróbki.
>
> X2 = X - Pos.
>
> Cle = (Left')*X2 (czyli po ludzku, dostajemy liczbę w wyniku
> dodania przemnożonych współrzędnych
> left.x * X2.x + left.y * X2.y +left.z * X2.z)
>
> Cup = (Up')*X2
>
> Dodatkowo, jeśli chcesz wiedzieć, czy punkt nie jest czasem
> za kamerą, liczysz Cdi = (Dir')*X2. Jeśli jest dodatni, jest
> przed kamerą, jeśli ujemny, za. Jeśli ==0, to punkt jest na
> powierzchni kamery.
>
> Można to zapisać macierzowo
>
> [Cle;Cup; Cdi] = [left'; up'; dir] * (X-Pos)
>
> Macierz ze środka składa się z wektorów leżących (obróconych)
> jeden na drugim.
>
> Jeśli zamiast wektorów w 3D użyjesz sztuczki z dodatkowym wymiarem,
> zawsze równym 1, czyli
> X = {x; y; z; 1}
>
> to możesz stworzyć jedną macierz rzutowania na kamerę:
> M = [left', 0; up', 0; dir, 0; 0,0,0,1] *
> * [ 1,0,0,-pos_x; 0,1,0,-pos_y; 0,0,1,-pos_z; 0,0,0,1 ]
>
> A taka operacja ma najprawdopodobniej wsparcie sprzętowe.
> Chociaż pierwsza wersja nie wykonuje niepotrzebnych obliczeń,
> nie wiem, którą się obecnie używa.
A, żeby nie było nieporozumień, to jest rzut izometryczny.
Taki jak w starym X-Com;)
Założyłem, że o to chodzi, bo dla normalnej kamery
potrzebujesz jeszcze jednego punkty definiującego kamerę.
pzdr
bartekltg
-
8. Data: 2012-12-01 19:53:27
Temat: Re: 3d -> 2d
Od: firr kenobi <p...@g...com>
W dniu sobota, 1 grudnia 2012 18:25:41 UTC+1 użytkownik bartekltg napisał:
> W dniu 2012-12-01 11:39, firr kenobi pisze:
>
> > Ostatnio naszła mnie idea by podzialac troche w
>
> > softwarowym rasteryzerze, tj zrobic sobie prosty,
>
> > (prosty framework do 2d mam juz zrobiony, o tyle
>
> > prosty rasteryzer z kulkami czy trojkatami to
>
> > nie jest juz tak duzo roboty
>
>
>
>
>
> Parser mi się wyłożył. Nie zamknąłeś nawiasu, nie
>
> kontynuowałeś myśli sprzed nawiasu. Wdałeś się
>
> w dygresję i zapomniałeś napisać, o co chodzi.
>
> ...zrobić sobie prosty _co_?
>
>
>
> Czytaj posty przed wysłaniem.
>
>
>
> > potrzebuje jednakze wzorku na rrzutowanie
>
> > wspolrzednych 3d na ekran 2d dla danego
>
> > ustawienia kamery
>
> >
>
> > kamera jest u mnie opisana przez:
>
>
>
> > float3 cameraPos = {0,0,0};
>
> > float3 cameraDir = {0,0,-1};
>
> > float3 cameraUp = {0,1,0};
>
> > float3 cameraLeft = {1,0,0};
>
>
>
>
>
> A co znaczą te punkty?
>
> Rozumiem, że pos to położenie środka (wyróżnionego
>
> punktu), dir to kierunek patrzenia, up i left to
>
> ścianki kamery.
>
>
>
> {dir, up, left} są wzajemnie prostopadłe.
>
> > jak zrzutowac
>
> >
>
> > float3 wierzcholek = {-20, -10, 200};
>
> >
>
> > na ekran dla danych ustawien kamery?
>
>
>
>
>
> No to nic prostszego.
>
> Zakładam, że wektory są stojące. ' to transpozycja, * mnożenie.
>
>
>
> {dir, up, left} są prostopadłe i odpowiednio wyskalowane.
>
>
>
> X - punkt do obróbki.
>
>
>
> X2 = X - Pos.
>
>
>
> Cle = (Left')*X2 (czyli po ludzku, dostajemy liczbę w wyniku
>
> dodania przemnożonych współrzędnych
>
> left.x * X2.x + left.y * X2.y +left.z * X2.z)
>
>
>
> Cup = (Up')*X2
>
>
>
> Dodatkowo, jeśli chcesz wiedzieć, czy punkt nie jest czasem
>
> za kamerą, liczysz Cdi = (Dir')*X2. Jeśli jest dodatni, jest
>
> przed kamerą, jeśli ujemny, za. Jeśli ==0, to punkt jest na
>
> powierzchni kamery.
>
>
>
> Można to zapisać macierzowo
>
>
>
> [Cle;Cup; Cdi] = [left'; up'; dir] * (X-Pos)
>
>
>
> Macierz ze środka składa się z wektorów leżących (obróconych)
>
> jeden na drugim.
>
>
>
> Jeśli zamiast wektorów w 3D użyjesz sztuczki z dodatkowym wymiarem,
>
> zawsze równym 1, czyli
>
> X = {x; y; z; 1}
>
>
>
> to możesz stworzyć jedną macierz rzutowania na kamerę:
>
> M = [left', 0; up', 0; dir, 0; 0,0,0,1] *
>
> * [ 1,0,0,-pos_x; 0,1,0,-pos_y; 0,0,1,-pos_z; 0,0,0,1 ]
>
>
>
> A taka operacja ma najprawdopodobniej wsparcie sprzętowe.
>
> Chociaż pierwsza wersja nie wykonuje niepotrzebnych obliczeń,
>
> nie wiem, którą się obecnie używa.
>
prosty softwarowy rasteryzer, Co do wzorkow to nie zatsanowilem sie ze wystarcza
iloczyny skalarne, szybko sie wyjasnilo. Ciagle troche dziwi mnie ze to uciga az
100tys kulek (moze raczej kropek) na ramke
https://dl.dropbox.com/u/42887985/soft.zip
https://dl.dropbox.com/u/42887985/100kKulekSoftRast.
jpg
Jestem zadowolony, zobacze pozniej jak
by szlo z trojkatami - softwarowe srodowisko
jest wygodne, lubie opengla, ale co pixele to pixele
-
9. Data: 2012-12-02 20:23:27
Temat: Re: 3d -> 2d
Od: firr kenobi <p...@g...com>
W dniu sobota, 1 grudnia 2012 18:25:41 UTC+1 użytkownik bartekltg napisał:
> W dniu 2012-12-01 11:39, firr kenobi pisze:
>
> > Ostatnio naszła mnie idea by podzialac troche w
>
> > softwarowym rasteryzerze, tj zrobic sobie prosty,
>
> > (prosty framework do 2d mam juz zrobiony, o tyle
>
> > prosty rasteryzer z kulkami czy trojkatami to
>
> > nie jest juz tak duzo roboty
>
>
>
>
>
> Parser mi się wyłożył. Nie zamknąłeś nawiasu, nie
>
> kontynuowałeś myśli sprzed nawiasu. Wdałeś się
>
> w dygresję i zapomniałeś napisać, o co chodzi.
>
> ...zrobić sobie prosty _co_?
>
>
>
> Czytaj posty przed wysłaniem.
>
>
>
> > potrzebuje jednakze wzorku na rrzutowanie
>
> > wspolrzednych 3d na ekran 2d dla danego
>
> > ustawienia kamery
>
> >
>
> > kamera jest u mnie opisana przez:
>
>
>
> > float3 cameraPos = {0,0,0};
>
> > float3 cameraDir = {0,0,-1};
>
> > float3 cameraUp = {0,1,0};
>
> > float3 cameraLeft = {1,0,0};
>
>
>
>
>
> A co znaczą te punkty?
>
> Rozumiem, że pos to położenie środka (wyróżnionego
>
> punktu), dir to kierunek patrzenia, up i left to
>
> ścianki kamery.
>
>
>
> {dir, up, left} są wzajemnie prostopadłe.
>
> > jak zrzutowac
>
> >
>
> > float3 wierzcholek = {-20, -10, 200};
>
> >
>
> > na ekran dla danych ustawien kamery?
>
>
>
>
>
> No to nic prostszego.
>
> Zakładam, że wektory są stojące. ' to transpozycja, * mnożenie.
>
>
>
> {dir, up, left} są prostopadłe i odpowiednio wyskalowane.
>
>
>
> X - punkt do obróbki.
>
>
>
> X2 = X - Pos.
>
>
>
> Cle = (Left')*X2 (czyli po ludzku, dostajemy liczbę w wyniku
>
> dodania przemnożonych współrzędnych
>
> left.x * X2.x + left.y * X2.y +left.z * X2.z)
>
>
>
> Cup = (Up')*X2
>
>
>
> Dodatkowo, jeśli chcesz wiedzieć, czy punkt nie jest czasem
>
> za kamerą, liczysz Cdi = (Dir')*X2. Jeśli jest dodatni, jest
>
> przed kamerą, jeśli ujemny, za. Jeśli ==0, to punkt jest na
>
> powierzchni kamery.
>
>
>
> Można to zapisać macierzowo
>
>
>
> [Cle;Cup; Cdi] = [left'; up'; dir] * (X-Pos)
>
>
>
> Macierz ze środka składa się z wektorów leżących (obróconych)
>
> jeden na drugim.
>
>
>
> Jeśli zamiast wektorów w 3D użyjesz sztuczki z dodatkowym wymiarem,
>
> zawsze równym 1, czyli
>
> X = {x; y; z; 1}
>
>
>
> to możesz stworzyć jedną macierz rzutowania na kamerę:
>
> M = [left', 0; up', 0; dir, 0; 0,0,0,1] *
>
> * [ 1,0,0,-pos_x; 0,1,0,-pos_y; 0,0,1,-pos_z; 0,0,0,1 ]
>
>
>
> A taka operacja ma najprawdopodobniej wsparcie sprzętowe.
>
> Chociaż pierwsza wersja nie wykonuje niepotrzebnych obliczeń,
>
> nie wiem, którą się obecnie używa.
>
>
Bardziej przydalaby mi sie inna sprawa -
nie kojarzysz moze tych sztuczek z algorytmu
bressenhama dla circle, tak jak tutaj
void FillCircleWithDepth(int x1, int y1, float z, int radius, unsigned color)
{
int left = x1-radius-1;
int right = x1+radius+1;
int up = y1-radius-1;
int down = y1+radius+1;
if(!_rectanglesOverlap(0, 0, CLIENT_X, CLIENT_Y,
left, up, right, down ) )
return;
int x = 0; //0
int y = radius; //1
int d1 = 3 - (2 * radius);
do
{
if (d1 < 0) d1 += (x<<2) + 6;
else d1 += ((x-(y--))<<2) + 10;
drawScanlineWithDepth(y1+x, x1-y, x1+y, z, color);
drawScanlineWithDepth(y1-x, x1-y, x1+y, z, color);
drawScanlineWithDepth(y1+y, x1-x, x1+x, z, color);
drawScanlineWithDepth(y1-y, x1-x, x1+x, z, color);
x++;
}
while(x<y);
}
tyle ze tutaj wyzej updatuje depthbuffor plaską
wartoscia z wzieta z z dla srodka kulki, potrzebowalbym poprawnej wersji tego
algorytmu nie dla 'circle' tylko dla sphere tak zeby
moc w przebiegu dostawac poprawne wartosci z by
moc poprawnie zapisywac do depthtbufora
bo jak robie plaskie to z podspodu przebijaja jakies polksiezyce (co mozna tu
zobaczyc w
programiku depthe ->
https://dl.dropbox.com/u/42887985/soft.zip
-
10. Data: 2012-12-03 00:32:27
Temat: Re: 3d -> 2d
Od: bartekltg <b...@g...com>
W dniu 2012-12-02 20:23, firr kenobi pisze:
> tyle ze tutaj wyzej updatuje depthbuffor plaską
> wartoscia z wzieta z z dla srodka kulki, potrzebowalbym poprawnej wersji tego
algorytmu nie dla 'circle' tylko dla sphere tak zeby
> moc w przebiegu dostawac poprawne wartosci z by
> moc poprawnie zapisywac do depthtbufora
>
> bo jak robie plaskie to z podspodu przebijaja jakies polksiezyce (co mozna tu
zobaczyc w
> programiku depthe ->
Ale czekaj, co chcesz zrobić. Narysować linię (rzut linii z 3D
na kamerę) czy powierzchnię?
Michoo dobrze doradził, poczytaj dokumentacje do openGL.
pzdr
bartekltg