Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

oyunlarda ray tracing - Reflect


Bone

Öne çıkan mesajlar

oyunların geleceği ray tracingdeymiş sanırım, indie bir grup portal klonu yaparak denemişler.
oyunu isteyen varsa indirsin:

http://igad.nhtv.nl/~bikker/

http://www.youtube.com/watch?v=Qdw1HvzKt1M

said:
Reflect is a game created by students of the IGAD program, a game development course of the NHTV University of Applied Sciences in Breda, The Netherlands. The game uses the Brigade path tracer for rendering. Path tracing is a process that constructs a large number of paths between the camera and light sources (typically via scene surfaces) to estimate the color of each pixel. This is a stochastic process, which causes the noise in the images. Although more samples would reduce the noise, path tracing is rather compute-intensive. Brigade runs on one or more GPUs to provide sufficient processing power.

The scenes in the game show some typical characteristics of path traced rendering. Obviously there is the noise, but this is more severe in poorly lit rooms, and rooms with complex glass materials.

More information about IGAD can be found here: http://made.nhtv.nl/
More information about graphics research at NHTV: http://igad.nhtv.nl/~bikker/
Work-in-progress Brigade website: http://brigade.roenyroeny.com/

A downloadable version of this video can be found here:
http://igad.nhtv.nl/~bikker/files/Reflect.avi
Link to comment
Sosyal ağlarda paylaş

tam olarak mevcut sistemden farkını anlayamadım, videodan da pek birşey anlaşılmıyor o kadar parazitle. ss'lerde de sadece ışıklandırmayla alakalı birşeyse ciddi bir fark yaratacağını sanmıyorum.

ışıklandırma/gölge olaylarına zaten gereğinden fazla önem verdiler yıllardır, kargacık burgacık karton gibi modellerle gölgesi düşmüş düşmemiş ne farkeder. yavaşlatmasın diye ilk kapatılan görsel özellik zaten ışıklandırma/gölge olayları.
Link to comment
Sosyal ağlarda paylaş

Anladigim kadariyla basit bir algoritma kullanarak, her bir piksel renklendirilmesini, etraftaki butun isik kaynaklari ve onlarin yansidiklari yuzeyleri ve golgelerin tamamini hesaba katarak yapiyor. Bunu yaparkende hem cpu lari hemde gpu lari ayni anda kullanarak, daha yuksek framerate te daha kaliteli goruntu saglamaya calisiyorlar.

Goruntulerdeki noise in sebebi, mesh araligin genis olmasina bagliyorlar, mesh araligi kuculdu mu gecislerin anlasilmayacagini dusunuyorlar.

Esasinda amac normalde bizim gozumuzle gordugumuz gercek renklendirmeyi saglamak. Ama arkadaslar bunun cok kastiracaginin farkina vardiklarindan dolayi, su anda amacimiz yuksek hizda daha kaliteli goruntu saglamak diyorlar.

Birde network ustunden daha fazla sayida cpu ve gpu ya destek vermeyi planliyorlar.
Link to comment
Sosyal ağlarda paylaş

abi işte real time render olacak her frame. cpu kullanımı da burda devreye giriyo ve network render olayı tabi.

fakat bana sorarsanız imkansız bişey bu. kaplamasız solid alanlarda olsa eyvallah, mükkemmele yakın ışık ve gölge çözümü diycem ama işin içine texture girince altından kalkamaz ne cpu ne gpu.

normal oyun motorlarında bir displace i simüle etmen çok basitken real time render işine girince 10 katına çıkıyor süre. böyle bi durumda nasıl fps ayakta durur düşünemiyorum.

yaptıkları videoda vs reflect refractların da tamamı mapsiz. üstelik her mekâna göre farklı ışık spotları vs sistemi feci yorar.

ha hdri sistem ile tek ışık kaynağı algoritması yapabilirlerse işleri daha basit. ama bunu koda nasıl dökerler bilemiyorum keza 3d programları bile simülesini zor bela yapıyor.

heriflerin sitesindeki single frame çalışmalar da kötü ötesi.
Link to comment
Sosyal ağlarda paylaş

seninde dedigin gibi isin icine texture girince, her texture nin yansitma orani farkli, isigi absorbe etme olayi farkli, her isik kaynaginin texture a olan acisi farkli, birde isin icine dinamik nesneler girdi mi...

CPU ve GPU unun kaldirmamasini birak, o algoritmayi yazabilseler basari.
Link to comment
Sosyal ağlarda paylaş

raytrace rendering aslında ışın izleme demek demek, o da sadece gölgeleri ilgilendiren bişeydir. yani şu an kullanılan scanline rendererlarda bir noktaya gelen direk ışıklardan başkası hesaplanmaz, yani her pixel sadece o pixele direk isabet eden tanımlı ışık kaynakları hesaba katılarak renk değeri bulunur. raytrace işlemindeyse ışık kaynağından belli sayıda ışın çıkarılır ve tanımlanmış iteration kere yüzeylerden sekerek (her sekişte o yüzeyin renk ve sönümleme vs gibi değerlerine maruz kalıp değişerek) başka başka yüzeyleri de aydınlatır. yani odaya tek bir ışık koyup açık kapı aracılığıyla koridordan loş bir aydınlanma efekti alınabilir, aynen gerçekte olduğu gibi.

şimdiki rendererlarla çok aydınlık olması gereken yerelere kuvvetli ışıklar konuyor, loş olması gereken yerler az ışık kaynağıyla aydınlatılıyor, böylece fake yöntemlerle gerçeğe yakın sonuç alınmaya çalışılıyor.

ama videoda görünen şey raytraceden ziyade unbiased render. yani bi bakıma eski rendering sistemleri tümevarım kullanıyordu, bu tümdengelimi kullanır. eski sistemde ilk pixelden hesaplamaya başlanır, son pixele kadar tüm pixellerin rengi oluşturulur ortaya frame çıkar. diğerindeyse worlddeki ışıklardan ve yüzeylerden ışınlar çıkarılır ve bizim kameramıza denk gelenlerin oluşturduğu aydınma ve renk seviyeleriyle pixeller oluşturulur. bu yöntemde iteration yoktur ama iteration yerine süre kullanılır. tıpkı fotoğraf maklinalarının diyafram süresinin açık kalma zamanı arttıkça grain efektinin azalması gibi. buradaki videodaki grainin fazla olmasının sebebi de işlemcilerin hala bu yöntem için çok yavaş olması.

unbiased renderinde antialaising gibi bi ayar da yoktur çünkü anlamsızdır ama gerçekten karışık konu açıklamaya kasamıycam:) kısaca şöyle düşünün fotoğraf makinasında (ve gerçek dünyada yani etrafa baktığımızda gözümüzde oluşan görüntüde) antialaising diye bi ayar sözkonusu olmaması gibi.
Link to comment
Sosyal ağlarda paylaş

google'da ray tracing diye arattığınızda abartı yansıma yapan objeler çıkıyor.
öte yandan şu alttaki çay bardağı resminde dengeli ışık yansımasının nasıl bir fark yarattığı iyi belli oluyor.

bunu şeye benzetiyorum, bazen eski cs ile yeni css maplerinin kıyaslaması oluyor, onlarda sadece ışıklandırma/gölgelendirmenin bile oyunları ne kadar fark ettirdiği gözlenebiliyor.
eğer dengeli ışıklandırma olayı gerçekleşebilirse, self shadowingten sonra büyük bir avantaj olacaktır oyunlar için.

1) http://thepriorart.wordpress.com/2009/08/05/nvidia-optix-ray-tracing-engine-unveiled-at-siggraph-200/

said:
The Future for Gaming

As multi-threaded processors capable of executing 8 or more simultaneous threads become mainstream, it may be possible to offload more processing to the CPU from the GPU — the Wheel of Reincarnation that I spoke about in my previous article on the topic. Current games don’t make use of powerful processors much at all. For this reason, the Core 2 Duo E8400 and E8500 remain some of the most sort after processors for gaming rigs. The costs are kept low, and the dual cores and higher clocks of these chips allow for gaming that meets the performance of Intel’s most high performance Nehalem CPUs. In the future games will slowly start to use increasing amounts of CPU power, however it seems CPU development will always be well-ahead of what mainstream game developers will end up using.

Perhaps the future lies in running some of the ray tracing algorithms in the CPU then. The CPU and GPU combination may work well together as GPU power increases, and while it handles most of the work involving textures, models, rendering, and outputting of display data, the CPU may use its extra thread capability to carry out ray tracing calculations for the GPU. I can see such a model working really well. Even with the coming of ultra-powerful GT300 and RV870 GPUs, with their claimed substantial power increase of baseline 3TFLOPS, it still seems unlikely that ray tracing for high-end games will become a mainstream possibility. I’m making this jugdement based on the 30fps @ 1080p achieved by the Visual Computing System (VCS) used by NVIDIA at the demo. 30fps is baseline acceptable for the majority of gamers, and the graphics output doesnt look all that great to justify this substantial reduction in performance for gaming.

A hybrid solution using extra CPU cores/hyperthreading seems to be the future.

If you have different opinions on this, please write them in the comments below. I’ll conclude this article with the NVIDIA press release on their OptiX and related engines.


2) http://www.tomshardware.com/reviews/ray-tracing-rasterization,2351.html

said:

The basic idea of ray tracing is extremely simple: for each pixel of the display, the rendering engine casts a ray that propagates in a straight line until it intersects an element of the scene being rendered. This initial intersection is used to determine the color of the pixel as a function of the intersected element's surface.

But this alone is not enough to achieve realistic rendering. For that, the lighting of the pixel also needs to be determined, which is done by shooting secondary rays (as opposed to the primary rays that determine the visibility of the different objects making up the scene). To calculate a scene's lighting effects, secondary rays are emitted toward the different light sources. If these rays are blocked by an object, then the object in question is in a shadow that the light source under consideration casts. Otherwise, that light source would affect its lighting instead. The sum of all the secondary rays that have reached a light source determines the quantity of light falling on our scene element.

But that's still not the whole picture. In order to achieve even more realistic rendering, the indices of reflection and refraction of the material have to be taken into consideration. In other words, the amount of light reflected at the point of impact with the primary ray and the amount of light that passes through the material have to be accounted for. Here again, rays are emitted to determine the final color of the pixel.

In summary, there are several types of rays. Primary rays are used to determine visibility and are like the Z-buffer used in rasterization. Then, there are secondary rays, which consist of:
shadow rays
reflection rays
refraction rays


The classic ray tracing algorithm

This ray tracing algorithm is the result of the work of Turner Whitted, the researcher who invented it 30 years ago. Until then, the ray tracers of the period worked only with primary rays. Thus, the improvements made by Whitted were a giant step toward realism in scene rendering.

If you have some physics courses under your belt, you will have noticed that the way ray tracing operates is exactly the inverse of what happens in the real world. Unlike the belief widely held in the Middle Ages, our eyes don't send out rays, but instead they receive the rays of light from light sources that have been reflected off the various objects by which we're surrounded. That's how the first ray tracing algorithm worked, in fact.

But the main disadvantage of the technique was that it was extremely computationally-expensive. For each light source, thousands of rays had to be cast, many of which had no influence on the scene being generated (because they didn't intersect the image plane). Recently-developed ray tracing algorithms are an optimization of the basic algorithm and are referred to as backwards ray tracing, since the rays propagate in the opposite direction from what happens in reality.


3) http://blogs.intel.com/research/2007/10/10/real_time_raytracing_the_end_o/

http://i.imgur.com/B0bim.jpg
Link to comment
Sosyal ağlarda paylaş

Ray tracing en gerçekçi çözüm de GPU'ya en hayvani yükü de bindiren iş bu. Gerçek zamanlı yapmak popo ister. O ilk videonun grenli görünmesinin sebebi de bu zaten. Parazit falan yok videoda. Hesaplanmayan "ışık huzmeleri" var.

Özetle, normalde oyunlarda vs. grafikler hazırlanırken yapılan, tasarımcı ekibin becerisine ve teknik elverişliliğe göre önceden tanımlı efektler ve ışıklandırmalar hazırlamak. Mesela Doom 3'teki dinamik gölge muhabbetini hatırlayın, onda gölgeler illa ki keskin ve tam kontrastla oluşuyodu. Yani önceden hesaplanmış belli bi algoritması falan vardı. (hatta doom3 open source hale sokulurken bununla ilgili patent sıkıntısı falan çıktı, neyse.)

Ray tracing denen nane ise, sürekli olarak ışığın gideceği yolu hesaplıyo (adı üstünde). Tabii bu belli bir sayıya kadar oluyor. (bir noktadan sonrasını anlayamıyosun zaten)

Yani atıyorum 10 ışık demeti (foton, ne dersen) kaynaktan çıktı, çaydanlığa geldi. Çaydanlık seramik diyelim; bu fotonların 2 tanesi seramiğin ilk cila katmanını geçti, alt tabakadan yansıdı kameraya geldi, diğer 8'i direkt ciladan yansıdı kameraya geldi. Bu kırılma ve yansımaların her biri adım oluyo işte. Bu adımları belli bi yere kadar hesaplıyo GPU.

Karmaşık bi sahnede gerçek zamanlı yapmak çok zor iş bunu. Şu anki oyunları düşününce onları ray tracing ile yapıldığını görmek daha vakit ister.

İyi ki özet geçtim ha.
Link to comment
Sosyal ağlarda paylaş

bone, raytrace diye arayınca parlak şeyler çıkmasının sebebi reflection ve refraction hesaplarını fake mapping yöntemleri kullanmadan hesaplayan yöntem olmasından kaynaklanıyor ama esas olayı ışının yansıyarak-kırılarak yoluna devam etmesi sonucunda görüntüyü oluşturmak. reflektif ve refraktif yüzeylerin doğru sonuçları vermesi bi yan sonuç.
Link to comment
Sosyal ağlarda paylaş

  • 6 yıl sonra ...
zaman gecti ustunden ama;
https://arstechnica.com/gadgets/2018/03/microsoft-announces-the-next-step-in-gaming-graphics-directx-raytracing/
https://www.digitaltrends.com/computing/microsoft-and-nvidia-bringing-ray-tracing-to-pc-graphics/
https://www.polygon.com/2018/3/19/17139358/nvidia-rtx-real-time-ray-tracing-volta-gpu-gdc-2018
https://www.youtube.com/watch?v=70W2aFr5-Xk
https://techreport.com/news/33399/amd-casts-a-light-on-its-radeon-rays-real-time-ray-tracing-tools
https://www.youtube.com/watch?v=C9eMciZGN4I
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...