Raytracing API-val bővíti a DirectX-et a Microsoft
2018-03-27T00:12:31+02:00
2018-03-31T20:23:17+02:00
2022-07-21T06:58:40+02:00
  • Ahogy írtam, a cascaded shadow mapping a leggykoribb megoldás nagy hatótávolságú fényekre (tipikusan a napra nagy open world-ben). Én ezt implementáltam az engine-emben és szerintem ez a mainstream megoldás manapság.

    Cascaded Shadow Maps (Windows)
    Mutasd a teljes hozzászólást!
  • A stenciles árnyékokkal kapcsolatban az az egyik tipikus kritika, hogy nagyon élesek - mintha a jelenet az űrben lenne, mindenféle légköri szóródás nélkül.
    Egy űrszimulátornál ez szerintem pont kevésbé probléma, és az előforduló jelenetek is elég stencil-barátok.
    Mutasd a teljes hozzászólást!
  • Limitációkat kell kötni. Nagy statikus objektumokhoz én nem számolgatnék realtime semmit,  ha a fény se mozog. Gondolom a lelátó nem szokott mozogni, meg a nap se meccs közben, bár nem fifáztam még sose. Karakter animációs téma is megint más, mert ott előre tudod a mozgásfázisokat, tudsz előre renderelni szintén egy adott irányba. Űrhajós játéknál a távolság a limit, nagyobb távolságban pontos körvonalat nem tudsz rajzolni csak az árnyékban lévő elem sötétebb lesz. Próbáld a távolsággal arányosan "mosni" az árnyékot. Kapcsold be a uniform washing3D-t. 
    Mutasd a teljes hozzászólást!
  • Jah ezt a fabian slangardost is neztem. Windowson az eredmeny igyis eleg elkeserito :)
    Mutasd a teljes hozzászólást!
  • Nagyobb jatekokban hogy csinaljak nagy tereknel? Pl egy fifa stadionnak az arnyekat.. az eleg nagy... vagy embereken... mindre egy oriasi nagy fbo? Nem tudom elkepzelni.
    Mutasd a teljes hozzászólást!
  • Filterezés nélkül, ha csakúgy kirakod tényleg elég ocsmány. Esetleg variance shadow?
    Mutasd a teljes hozzászólást!
  • Na megirtam droidra egyet ami globalisan mukodik. Hat nem mondom vagy 1 hetet szivtam vele. Amik igy online vannak shadow tutorialok azokat neztem... hat a legtobbje olyan, hogy rogton 3/3 nem mukodott.  Vagy texturazatlanul mentek... 

    En meg egy urszimulatort fejlesztek ahol a bolygok nagyobbak a hajok kicsik. Valamint tobb reteg van a hajokon custom shaderekkel. Most az a vicces, hogy a fenyforras olyan tavolsagra van a bolygoktol... plusz hogy a shadow map texturat novelnem kellett 2048ra hogy ne legyen oltari pixeles... 

    Azt hiszem a hajokra vetett arnyekrol lemondok mert az meg mar viccesen pixeles lett. Ide nem tudom mekkora textura kene, de kva nagy :( 

    Mar ertem miert ilyen ocsmany mindenhol ez. Beleertve akkora jatekokat mint az uj Fifa...
    Mutasd a teljes hozzászólást!
  • (Ok, a bennem lévô nagyon másnapos HR-es felvett :D)

    Hát az árnyékot, amit kérdeztél - ti. hogy hogy lehet bekapcsolni a glLight analógiájára a glShadow-ot . Én meg rávágtam a 15 eve aktuális tekkkológiát, a shadow texturing-et.
    Mutasd a teljes hozzászólást!
  • Én se értem, hogy egy textúrával mit akarsz bekapcsolni, úgyhogy HR-es szempontból meggyőztél.
    Mutasd a teljes hozzászólást!
  • Mert az szerintem a leghasznalhatobb amivel lehet live wallpapert is irni. Hat regebben fejlesztettem bele ilyen engine-ekbe, mint a Rajawali pl, de egyedul megirni egy ilyet lehetetlen:D

    Regen irtam egy kisebb engine-t, opengl es 1.0-ra, de ez mar mas teszta... Itt veges emberi idon belul szeretnek alkotni valamit.:)

    A libgdx-et is evek ota fejlesztik... es ezer sebbol vetzik igyis. Tudom van Unity... de azt annyira nem szeretem. Ugy erzem, hogy tobbet tanulok igy, mintha azt hasznalnam.
    Mutasd a teljes hozzászólást!
  • Nem ertem, hogy mire akarsz kilyukadni, de ha egy HR-es szemszogebol nezem, kajak meggyôzô vagy :D
    Mutasd a teljes hozzászólást!
  • Valami ilyesmi választ vártam, köszi.

    real_het: Pont erre akartam kilyukadni, hogy attól, hogy bevezetsz egy textúrát a shaderbe még nincs megoldva az árnyékolás, nem egyszerűbb a helyzet semmivel az FFP-hez képest, sőt, míg RT-nél pimplesz egyet, aztán kapod, hogy pumped, vagy nem pumped a shadow oszt kész.
    Mutasd a teljes hozzászólást!
  • "Egy ideje fejlesztegetek libgdx el, de ha mar kozepesen nehezebb dolgot akarok, akkor kb alig lesz ra megoldas vagy jon a szenvedes."

    Miért éppen libgdx amúgy? Én úgy vagyok vele, hogy vagy teljesen magamtól írom az engine-t vagy valami olyat használok, ami profi feature-okat tartalmaz és open source.
    Utóbbiak: Unreal és Godot.

    Sajnos az Unreal az túl nagy az én ízlésemnek, majdnem annyi idő lenne olyan szinten megtanulni, mint ami az én ízlésemnek kell (hogy tweekelni tudjam speciális igényekre), mintha sajátot írnék.
    A godot-ot még nem néztem részletesen, de első ránézésre nagyon érdekes: teljesen open source és ingyenes, teljesen permissive licensszel. És azért rendes physically based shading, cascaded shadow maps, stb... van benne...

    Godot Engine - Free and open source 2D and 3D game engine
    Mutasd a teljes hozzászólást!
  • Ne is mondd: ugyanennyit potsoltem a sun flare-ekkel, sun shafttal, nemregen a laser objecttel is, meg az electricity shaderrel :D meg hogy vegre normalis fenyforras legyen a shaderben (ami meg most sem tetszik)

    Hat en is mar opengl-ezgetek egy ideje. Kb 18 evesen kezdtem, de azota csak nehezebb lett. :D

    androidon en is visszaterek mindig hozza.. ez fuggoseg
    Mutasd a teljes hozzászólást!
  • "de itt ugye 3-4 shadow mapet is renderelni kell framenként."

    Mármint fényforrásonként. Jó esetben, ha direkcionális lightról van szó. Pontszerű fénynél legalább 4-el kell ezt szorozni ha tetraéderre feszítjük a shadow mapeket, 6-al, ha kockára. Na persze általában csak a nap-ra nyomunk cascaded shadow mapet, a kisebb range-ű fényforrásokra nem alkalmazunk cascade-okat.
    Mutasd a teljes hozzászólást!
  • Milyen shadowot erdemes ha egyaltalan erdemes alkalmazni egy mobil urszimulatornal?


    Szerintem mindenképpen vaalmlyen shadow mapping megoldást, szinte mindenki mindenre azt használ manapság. Sajnos én PC VR-ra fejlesztek, úgyhogy nem tudom elbírna-e egy cascaded shadow mappinget egy mobil.

    "

    Ez a 3d zesgetes masnak is ekkora pepecseles es szenvedes vagy csak nekem?:))))

    "

    Nekem is. Racionálisan nem is éri meg pl. saját engine-t írni, de ezt nem azért csinálom, mert megéri, hanem mert késztetést érzek rá :) Többször felfüggesztettem, módosítottam a projekten, de mindig visszatértem hozzá. A 3D content gyártás viszont még az engine írásnál is pepecselősebb, és ahhoz még tehetségem/türelmem sincs, úgyhogy extrémen procedurálisan generált skyrim jellegű játékot építek az engine-emre. Minden procedurálisan generálódik, még a quest-ek is.
    Mutasd a teljes hozzászólást!
  • Milyen shadowot erdemes ha egyaltalan erdemes alkalmazni egy mobil urszimulatornal? 

    Egy ideje fejlesztegetek libgdx el, de ha mar kozepesen nehezebb dolgot akarok, akkor kb alig lesz ra megoldas vagy jon a szenvedes. A multkor implementaltam a sun shaftot, de az s7 emen is vmi durvan lement az fps 60 rol 30 korulire ugyhogy kikukaztam :) pedig ejj de szep volt.. 

    Ez a 3d zesgetes masnak is ekkora pepecseles es szenvedes vagy csak nekem?:))))
    Mutasd a teljes hozzászólást!
  • "Tenyleg miert ilyen ocsmanyak az arnyekok minden jatekban meg ma is?"

    Mert a real-time árnyékolás egy mocsok nehéz probléma. (Lassan kiszámolni triviális: bontsuk az area-lightsource-ot mondjuk 100 kis részre, és indítsunk minden pixelből sugarat mindegyikhez, és számoljuk meg hány % blokkolt: ez a takartság mértéke)

    Komplett könyvek vannak csak a real-time árnyékról.

    Ott kezdődik, hogy már hard shadow-ot generálni sem triviális tetszőleges scene-re. Egy időben divatos volt erre stencil shadow, de iszonyú fillrate-e tud lenni szerencsétlen scene-ekre. Ma már a shadow mapping egyeduralkodó (főleg mert könnyebben softosítható), de ez is mindenféle problémáktól terhelt.

    A sima shadow mapping egy shadow mappel nagy open scene-eknél nem jöhet szóba, mert vagy elképesztő felbontás kell, vagy nem lesz elég a felbontás a scene bizonyos részein. Ezen segít pl. a Cascaded shadow mapping, de itt ugye 3-4 shadow mapet is renderelni kell framenként. (De VR-ban legalább könnyebbség, hogy legalább nem duplikálódik szemenként.) Itt a pixel shader dinamikusan dönti el, hogy melyik shadow mapből dolgozik!

    A soft shadow még nagyobb probléma. Az egyik legegyszerűbb megoldás a percentage closer filtering, ami nagy kernelre számításigényes, kis kernelre nem elég sima. A Variance Shadow Mapping egy érdekes megoldás, ami prefilterelhető, de megvannak az artifactjai. Pedig ezek egyáltalán nem korrekt soft shadow módszerek, hiszen nem a fényforrás mérete és távolsága alapján számolják az átmeneteket, hanem csak konstans átmenetet szolgáltatnak, nem is a soft shadow realisztikussága, hanem inkább a ronda, nagyon recés shadow mapből jövő hard shadow antialiasingja a cél. A valódi méretű umbrát, penumbrát szólgáltató megoldások még költségesebbek vagy bonyolultabbak.

    Én a saját VR engine-emben egyébként nem cifráztam túl: Cascaded shadow mappinget használok Percentage Close Filteringgel. Éppen elég meló volt a cascaded shadow mappinget leimplementálni még részletes leírás segítségével is :)
    Mutasd a teljes hozzászólást!
  • Tenyleg miert ilyen ocsmanyak az arnyekok minden jatekban meg ma is? 
    Gondolok itt az elekre vagy csak arra hogy vibral a modellen a cucc. 2018 ban. 

    Pedig ezeket xboxon lattam. Azt hinne az ember, hogy mar van jobb megoldas ezekre.
    Mutasd a teljes hozzászólást!
  • A vicc az, hogy meg libgdx ben sincs alapbol shadow. Unityben gondolom van. Libgdxben is csak light van rahuzva.

    Ha mar ilyen "oriasi" dolgok kellenek, akkor framebuffer plusz shaderezgethetsz.
    Mutasd a teljes hozzászólást!
  • Az eddigi ismert techdemók alapján azért az egy nagyságrendbeli növekedés is kevésnek tűnik nekem.
    Legalábbis ha a legfrissebb techdemóról beszélünk, akkor a max (virtuálisan) 4 méteres színtér dinamikus objektumok (pl szőr/haj) nélkül nekem eléggé nem egy nagyságrendbeli lemaradásnak tűnik. Hajjal, bőrrel, Crysis méretű színtérrel és full RT-vel számolva pedig szerintem elérjük a 2-3 nagyságrendet (de akár többet is), ha nem csak 1-2 sugárral számolunk. Természetesen a grafikában csak lelkes amatőr vagyok, de nekem ez a meglátásom és, így kéretik fenntartással kezelni.
    Mutasd a teljes hozzászólást!
  • "

    íg RT-nél ez a technikából eleve adódik. 

    "

    Igen, csak az a baj, hogy a klasszikus ray tracing grafikai minősége, amit a 90-es években számolgattunk, meg sem közelíti a mai raszterizációs technikákat. (Klasszikus raytracing: pixelenként néhány sugár: egy a szemből az ojjektumra, onnan egy-egy a fényforrásokhoz meg esetleg még ugyanez egyszer kétszer rekurzívan a tükröződés miatt). Ez már megy viszonylag könnyen real-time, tökéletes hard shadow-okat ad és tökéletes environment mappinget, de nincsenek soft shadowok, nincsenek indirekt fények, stb... És ha mégis szép, netán korrekt soft shadowokat akarunk, meg indirekt fényeket jó kis path tracinggel, importance samplinggel, akkor egyre több sugár kell és bejönnek problémák amiket meg kell oldani (pl. denoising). És a demók mutatják, hogy bizonyos sceneken már ez is megyeget real-time erős GPU-kon.
    Szerintem nincs amúgy átütő erő, ami a raytracing felé nyomná a computer graphics-ot: mindent meg lehet csinálni majdnem olyan jól (csalásokkal és 'nem túl feltűnő' közelítésekkel) raszterizációval általában gyorsabban. A raytracing előnye, hogy a legtöbb problémát valamivel egyszerűbben (kevesebb trükközéssel) lehet megoldani, és egy szint feletti minőséget általában már csak ez ad (pl. brutál pontos area soft-shadowokat, indirekt fényezéseket), és elvileg óriási scenekre jól skálázódik majd, ezért még néhányszoros GPU erősödés után, esetleg gyorsabb RAM-ok segítségével (talán kell még egy nagyságrend növekedés is, ami manapság nagyon lassan következik be) végre tényleg mainstreammé válhat.
    Mutasd a teljes hozzászólást!
  • glLight az van

    Ja es egy evtizede deprecated a tobbi fixed pipe cuccal egyut. :D

    de glShadow-ról nem tudok. Te tudsz ilyent, be tudod kapcsolni?

    Persze hogy: -> uniform sampler2DShadow
    Mutasd a teljes hozzászólást!
  • glLight az van, de glShadow-ról nem tudok. Te tudsz ilyent, be tudod kapcsolni? 
    RT-nél, azért meg nem nehéz "pimpolni" azt.
    Mutasd a teljes hozzászólást!
  • Mindent egybevéve beláthatjuk, hogy a fény "fogalom" sem létezik: mindannyian csak számok vagyunk egy végtelen univerzum mesterséges intelligenciájában. 

    Amúgy jó reggelt! :D
    Mutasd a teljes hozzászólást!
  • Persze, mert a raszternél például olyan "fogalom", hogy árnyék nincs, csak lokális megvilágítás, míg RT-nél ez a technikából eleve adódik. Az más kérdés, hogy ezt hogy tudja a hardver párhuzamosítani.
    Mutasd a teljes hozzászólást!
  • YouTube

    A klasszikus raszterizalas azert megmarad, az arnyek, ambient occlusion, es a tukrozodes lesz felpimpelve.
    Mutasd a teljes hozzászólást!
abcd