-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
atman.pl!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-01.news.n
eostrada.pl!news.neostrada.pl.POSTED!not-for-mail
Content-Type: text/plain; charset=iso-8859-2; format=flowed; delsp=yes
Newsgroups: pl.comp.programming
Subject: Re: simple ray tracing
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>
Date: Fri, 28 Oct 2011 18:30:53 +0200
MIME-Version: 1.0
Content-Transfer-Encoding: Quoted-Printable
From: "Jordan Szubert" <u...@j...us.to>
Organization: HELL inc.
Message-ID: <o...@a...home>
User-Agent: Opera Mail/11.52 (Win32)
Lines: 111
NNTP-Posting-Host: 83.26.226.70
X-Trace: 1319819457 unt-rea-a-01.news.neostrada.pl 2187 83.26.226.70:11453
X-Complaints-To: a...@n...neostrada.pl
Xref: news-archive.icm.edu.pl pl.comp.programming:193252
[ ukryj nagłówki ]Dnia 28-10-2011 o 17:58:46 <f...@g...pl> napisał(a):
> Dnia 28-10-2011 o 14:26:07 <f...@g...pl> napisał(a):
>
>> kwestia tylko jak dodawac do siebie kolory swiatel?
>
>> ja robie to +- tak:
>
>> light_intensity_from_both_lights=light_intensity_fro
m_light1+light_intensity_
>> from_light2;
>
>> value_to_display=I2D(light_intensity_from_both_light
s)
>
>> 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żę; i swiatlo krążace dookoła niej to mógłby sie może
> rzucać fajny cień i moze fajnie by wygladało
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=...;//
return new Pair(t,()=>{
rd=reflect(r.dir,N());
X=r.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...
--
Jordan Szubert
Następne wpisy z tego wątku
- 28.10.11 18:56
- 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
Najnowsze wątki z tej grupy
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
Najnowsze wątki
- 2025-07-14 granice
- 2025-07-14 Awaria VM?
- 2025-07-14 Gdańsk => Programista Kotlin <=
- 2025-07-14 Warszawa => Junior Rekruter <=
- 2025-07-14 Warszawa => Specjalista rekrutacji IT <=
- 2025-07-14 Wkłady do zniczy...
- 2025-07-14 Warszawa => Specjalista ds. Sprzętu Komputerowego <=
- 2025-07-14 Re: PO chroniło i chroni policyjnych bandziorów [zawiasy za katowanie obywatela (Poznań czerwiec 2012)]
- 2025-07-14 Warszawa => International Freight Forwarder <=
- 2025-07-14 Warszawa => Recruiter 360 <=
- 2025-07-14 Re: Rz?Âd ZAKAZUJE magazyn?Â?w energii ?!! Nowe prawo od 14 lipca to SZOK! ??Â
- 2025-07-14 Warszawa => Sales Assistant <=
- 2025-07-13 Fałszywe alerty
- 2025-07-12 dlaczego gadacie z tym debilem
- 2025-07-13 Unia Europejska przygotowuje nowy podatek