-
Data: 2011-11-02 08:45:22
Temat: Re: simple ray tracing
Od: " " <f...@g...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]> dodac; tylko ze zrobilem jeden z najbardziej maskrycznych
> balaganow na małych 400 linijkach kodu tak ze trzebeby
> uporzadowac, w sumie jednak klawe
>
przyspieszylbym to chetnie, ale nie bardzo wiem jak, wielowatkowosc
mimo opini ze to trudne jest tu tak naprawde najprostsza, ale mam
1 procesorowego kompa, nie mam tez dobrej karty do jakichs ew obliczen
na gpu o ile to bys sie wogole dalo zrobic(?); pozostaje sse ale musialbym
chyba napisac procedury w asmie i zlinkowac je ze swoim starym borlandem
- nie wiem czy sie da (?) zwlaszcza ze tak naprawde potrzebuje intrisincow,
jak dodac 'intrisincowo' funkcje w sse z liba - chyba sie nie da
(ew przesiasc sie na gcc pod winde ale nigdy nie uzywalem (?));
potrzebne sa po prostu szybkie intrisincowe funkcje jak
length)float3* v);
normalize(float3* v);
dot(float3* x, float3* v);
cross(float3* x, float3* v);
bo to jest masywnie uzywane w b. prosty sposob jak:
// find intersection point and its normal
//(...)
// get light
lightRay1 = sub(&intersectionPoint, &light1Pos);
lightRay2 = sub(&intersectionPoint, &light2Pos);
lightRay3 = sub(&intersectionPoint, &light3Pos);
float lightRay1length = length(&lightRay1);
float lightRay2length = length(&lightRay2);
float lightRay3length = length(&lightRay3);
float light1fade = linearFade(lightRay1length);
float light2fade = linearFade(lightRay2length);
float light3fade = linearFade(lightRay3length);
normalize(&lightRay1);
normalize(&lightRay2);
normalize(&lightRay3);
//tutaj ew wykrywac cienie - ale skasowalem bo nie wygladaly zbyt ok
float light1 = -dot(&intersectionPointNormal,&lightRay1)*light1fade
;
float light2 = -dot(&intersectionPointNormal,&lightRay2)*light2fade
;
float light3 = -dot(&intersectionPointNormal,&lightRay3)*light3fade
;
//// set pixel
if(light1<0) light1=0;
if(light2<0) light2=0;
if(light3<0) light3=0;
int r = (light1*light1r + light2*light2r + light3*light3r)*255.0;
int g = (light1*light1g + light2*light2g + light3*light3g)*255.0;
int b = (light1*light1b + light2*light2b + light3*light3b)*255.0;
r+=materialr;
g+=materialg;
b+=materialb;
if(r>255) r =255;
if(g>255) g =255;
if(b>255) b =255;
SetPixel(i,j,r,g,b);
toporna vektorowka na wektorch 3d, wszystko jest inline ale nie wiem jak
to przyspieszyc pozatym zeby te funkcje przepisac na SSE
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Następne wpisy z tego wątku
- 02.11.11 17:04 wloochacz
Najnowsze wątki z tej grupy
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
Najnowsze wątki
- 2025-01-20 Gdańsk => Programista Full Stack .Net <=
- 2025-01-20 Gliwice => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-01-20 Warszawa => Full Stack .Net Engineer <=
- 2025-01-20 huta ruszyla
- 2025-01-20 piece wodorowe
- 2025-01-20 Lublin => Programista Delphi <=
- 2025-01-20 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2025-01-20 Mińsk Mazowiecki => Area Sales Manager OZE <=
- 2025-01-20 Bieruń => Spedytor Międzynarodowy (handel ładunkami/prowadzenie flo
- 2025-01-19 Test - nie czytać
- 2025-01-19 qqqq
- 2025-01-19 Tauron przysyła aneks
- 2025-01-19 Nowa ładowarka Moya a Twizy -)
- 2025-01-18 Power BANK z ładowaniem przelotowym robi PRZERWY
- 2025-01-18 Pomoc dla Filipa ;)