-
Path: news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: " " <f...@g...pl>
Newsgroups: pl.comp.programming
Subject: Re: simple ray tracing
Date: Fri, 28 Oct 2011 18:56:14 +0000 (UTC)
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 144
Message-ID: <j8etse$d1q$1@inews.gazeta.pl>
References: <6...@s...googlegroups.com>
<j8btf4$hv5$1@node2.news.atman.pl>
<f...@n...googlegroups.com>
<j8dgas$474$1@node2.news.atman.pl>
<c...@a...googlegroups.com>
<4...@p...googlegroups.com>
<j8e70u$5vh$1@inews.gazeta.pl> <o...@a...home>
<j8ejfl$c33$1@inews.gazeta.pl> <o...@a...home>
NNTP-Posting-Host: localhost
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: 8bit
X-Trace: inews.gazeta.pl 1319828174 13370 172.20.26.242 (28 Oct 2011 18:56:14 GMT)
X-Complaints-To: u...@a...pl
NNTP-Posting-Date: Fri, 28 Oct 2011 18:56:14 +0000 (UTC)
X-User: fir
X-Forwarded-For: 46.134.143.84
X-Remote-IP: localhost
Xref: news-archive.icm.edu.pl pl.comp.programming:193253
[ ukryj nagłówki ]Jordan Szubert <u...@j...us.to> napisał(a):
> Dnia 28-10-2011 o 17:58:46 <f...@g...pl> napisa=B3(a):
>
> > Dnia 28-10-2011 o 14:26:07 <f...@g...pl> napisa=B3(a):
> >
> >> kwestia tylko jak dodawac do siebie kolory swiatel?
> >
> >> ja robie to +- tak:
> >
> >> light_intensity_from_both_lights=3Dlight_intensity_f
rom_light1+light_=
> intensity_
> >> from_light2;
> >
> >> value_to_display=3DI2D(light_intensity_from_both_lig
hts)
> >
> >> float I2D(float i){
> >> return pow(i/(i+1.0),1/2.2);//moze i nierealistyczne, ale
> >> intensywnosc
> >> swiatla jest w zakresie 0-+inf, a wyjscie 0-1
> >> }
> >
> > ok pomysle ew o czyms podobnym, trzababy poczytac troche
> > jakiejs dobrej teorii; a jak opisujesz scene? - pewnie
> > masz tam jakas funkcyjke do sprawdzania przeciec raya
> > z trojkatem albo czyms podobnym, nie masz gdzies pod reka
> > aby podrzucic? mysle ze jakbym zrobil jakas prostopadloscienna
> > ;wie=BF=EA; i swiatlo kr=B1=BFace dooko=B3a niej to m=F3g=B3by sie mo=BF=
> e
> > rzuca=E6 fajny cie=F1 i moze fajnie by wyglada=B3o
>
> w tym potworku co se klecilem, i ktory paro-obiektowa scene renderuje do=
> =
>
> 320x240 w 15s na 3 watkach obliczeniowych na i5 2410M, mam w tym stylu:
>
>
> //pseudokod podobny do C#
> struct V3{ float x,y,z; }
> struct I3{ float r,g,b; }//intensywnosc swiatla, licznosc fotonow
> struct Ray{ V3 start,dir; }
> struct Pair<T1,T2>{
> T1 f;
> T2 s;
> }
> delegate Pair<I3,Pair<Ray,I3>[]> Continuation();
> interface Element{
> Pair<float,Continuation>? Intersect(Ray r);
> }
> struct PointLight{
> V3 location;
> I3 intensity;
> }
> class Scene{
> Element[] elemets;
> PointLight[] lights;
> Camera cam;
> }
>
> IMO najciekawszym kawalkiem jest interfejs Element:Intersect zwraca null=
> , =
>
> jesli polprosta Ray nie przecina obiektu, w przeciwnym wypadku pierszym =
> =
>
> element pary, okresla ze przeciecie
> wystepuje w ,,momencie'' t, czyli punkt preciecia jest w start+t*dir, =
>
> drugi element pary to to funkcja zwracajaca pare: ile swiatla leci do =
>
> kamery z zrodel swiatla po odbiciu/rozproszeniu, zas drugi element to =
>
> tablica par: promienie potomne i przez co zalezy przemnozyc ich =
>
> intensywnosc (dzieki temu mozliwe bedzie zaimplementowanie lusta =
>
> polprzepuszcalnego jako klasy implementujacj interfejs Element, jakos +-=
> =
>
> tak:
>
> class PolLustro{
> V3 N();//normalna
> Pair<float,Continuation>? Intersect(Ray r){
> if(nie ma przeciecia)
> return null;
> t=3D...;//
> return new Pair(t,()=3D>{
> rd=3Dreflect(r.dir,N());
> X=3Dr.start+r.dir*t;
> return new Pair(new I3(0,0,0),new Pair<Ray,I3>[]{
> new Pair<Ray,I3>(new Ray(X,r.dir),new I3
(0.5,0.5,0.5)),//promien =
>
> przepuszczony
> new Pair<Ray,I3>(new Ray(X,rd),new I3
(0.5,0.5,0.5)),//promien odbity=
>
> });
> });
> }
> }
> trojkatow akurat nie mam, Elementy tu nieskonczona szachownica, =
>
> prostopadloscian rownolegly do osi X,Y,Z, sfera, elipsa i portal: para =
>
> rownoleglobokow, jak promien trafia w jeden z nich, to promien potomny =
>
> wylatuje z drugiego...
>
> konkretna implementaja nie bede na razie straszyl...
>
co do c# to ja nieinteresuje sie c#pem (jak patrze na kody to
nie rozumiem wielu wyrazeni c#owych); grupowicz K Y wmieszal w
to c#pa ja pisze w c ;
Co do balaganu to ja tez czesto tworze duzy balagan.
Co do szybkosci to ja tez nie pisze szybko ale c nie daje
istatnych opoznien sam z siebie, a czasem tez mierze sobie
czasy roznych kawalkow; ostatnio nawet lekko poduczylem sie
na sucho troche sse (nie jest to wcale tak zagmatwane jak mi
sie wydawalo na pierwszy tzut oka po prostu te mnemoniki
glupio grupami zaciemnione) ale pod moim kompilatorem (stary
borland 5.5.1 comandline chyba nie darady uzywac sse jako
asma inline) :-( (Chyba ze ktos wie ze da rade i jak wtedy
dzieki za info;)
Co do sceny to bardziej chodzilo mi o to jak trzymasz
figury/powierzchnie na scenie a nie o uklad kodu,
nie wiem jak to sie robi w raytracerach czy jako tablica
trojkatow czy inaczej, np jako funkcje - chodzilo mi tez
czy masz gotowy wzorek do przeciec miedzy rayem a np
trojkatam czy 'quadem', albo innymi figurami (bo ja mam
tylko fajny do sfery), poszukam w necie ale pogadac na temat
nie zawadzi,
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Następne wpisy z tego wątku
- 28.10.11 19:38 Jordan Szubert
- 28.10.11 20:58
- 28.10.11 21:22 Wojciech \"Spook\" Sura
- 28.10.11 22:18
- 29.10.11 04:22 Jacek
- 29.10.11 07:32 Karol Y
- 29.10.11 07:34
- 29.10.11 07:59
- 29.10.11 08:19
- 29.10.11 10:16
- 29.10.11 12:52
- 30.10.11 14:00 Jacek
- 30.10.11 14:43
- 30.10.11 14:48 Jacek
- 30.10.11 15:19
Najnowsze wątki z tej grupy
- 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
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
Najnowsze wątki
- 2025-01-04 Warszawa => Specjalista ds. IT - II Linia Wsparcia <=
- 2025-01-04 Warszawa => Java Developer <=
- 2025-01-04 Warszawa => Spedytor Międzynarodowy <=
- 2025-01-04 Warszawa => System Architect (Java background) <=
- 2025-01-04 Wrocław => Application Security Engineer <=
- 2025-01-04 Chrzanów => Specjalista ds. public relations <=
- 2025-01-04 Katowice => Key Account Manager (ERP) <=
- 2025-01-03 Problem z odczytem karty CF
- 2025-01-03 Jazda z Warszawy do Krakowa teslą
- 2025-01-03 Wrocław => Konsultant Wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-01-03 Warszawa => International Freight Forwarder <=
- 2025-01-03 Mińsk Mazowiecki => Area Sales Manager OZE <=
- 2025-01-03 Warszawa => Spedytor Międzynarodowy <=
- 2025-01-03 Beztłumikowcy
- 2025-01-03 Lublin => Delphi Programmer <=