Трассировка фотонов

Материал из Неолурк, народный Lurkmore
Перейти к навигации Перейти к поиску

Трассировка фотонов — это когда комп на полном серьёзе пытается симулировать, как свет летает в реальной жизни. Тут тебе и аппроксимации, и геометрическая оптика, и даже кусочки квантовой механики. Если совсем просто, это способ рендеринга, который моделирует путь фотонов — таких мелких частиц света, чтобы сделать картинку почти как в реальности. Только комп при этом орёт от боли, как будто ты запустил майнинг и рендер видео одновременно.

Как это работает[править]

Представь: у тебя есть сцена в 3D, на ней какие-то объекты, и есть источник света — лампа, солнце, факел, неважно. Из источника стартуют миллиарды виртуальных фотонов (ну, почти настоящих), и они начинают путешествие по сцене. В реальности это всё происходит за доли секунды, но твоему железу придётся посчитать каждый грёбаный фотон. Прямо вот каждый.

Генерация фотонов[править]

Источник света кидает фотоны во все стороны. Это как на вписке, где кто-то кинул хлопушку, и конфетти летит по всему помещению — фотоны примерно так же рассеиваются по сцене.

Взаимодействие с поверхностями[править]

Фотоны сталкиваются с поверхностями: отскакивают, преломляются, рассеиваются, и вообще делают всякую физическую хрень. Тут вступают в дело всякие коэффициенты отражения и преломления. Если у тебя стекло — фотон частично пройдёт через него, если металл — отскочит, как мячик от стены. И всё это нужно просчитать.

Отражение и преломление[править]

Закон физики тут строгий — фотон либо отражается, либо преломляется. Закон Снеллиуса, знаешь? Нет? Ну, в общем, он решает, как сильно фотон изменит направление при переходе через границу двух сред. Вроде воды и воздуха, или стекла и вакуума, если ты вдруг в космосе.

Множественные взаимодействия[править]

Фотоны не останавливаются после одного столкновения, они как упёртые тараканы, продолжают двигаться и дальше. Вот только с каждым новым взаимодействием их энергия уменьшается. Чем больше они сталкиваются, тем слабее становятся, пока совсем не потеряют всю энергию. Да-да, это как твоя мотивация на последней паре в универе.

Энергетический вклад[править]

Финальная картинка зависит от того, сколько энергии фотон принёс в камеру. Если фотон ударился о поверхность и не потерял всю свою энергию — ты видишь красивый блик. А если весь свет поглотился в текстурах, то получаешь тёмные тени, как в самых мрачных уголках твоей души.

Отличия от трассировки лучей и путей[править]

Значит, у нас есть три популярные метода симуляции света в рендеринге: трассировка лучей (Ray Tracing), трассировка путей (Path Tracing) и наша звезда — трассировка фотонов (Photon Tracing). Эти термины звучат похоже, но на самом деле отличаются, как твой учитель математики от мемов в интернете. Давай разберёмся, чем они отличаются:

Трассировка лучей (Ray Tracing)[править]

В основе этой технологии — идея просчёта лучей света от камеры к объектам сцены. Грубо говоря, твоя камера кидает лучи и проверяет, что они там встретят на своём пути — поверхностные отражения, тени, преломления и так далее. Этот метод считается простым, потому что всё начинается от камеры и позволяет легко учесть прямое освещение. Проблема в том, что всякая сложная хрень вроде глобального освещения и рассеяния остаётся за бортом, и картинка выглядит менее реалистично.

Трассировка путей (Path Tracing)[править]

Это уже более продвинутая версия трассировки лучей. Здесь каждый луч, вылетая из камеры, начинает путешествие по сцене, многократно отражаясь от поверхностей и взаимодействуя с разными объектами. Преимущество такого подхода — можно учесть не только прямое освещение, но и более сложные эффекты, например, рассеяние света и мягкие тени. Однако, чтобы сделать картинку действительно качественной, нужно много итераций — чем больше путей (трассированных лучей), тем лучше результат, но и больше нагрузка на железо.

Трассировка фотонов (Photon Tracing)[править]

Ну, а трассировка фотонов — это вообще другая песня. Здесь всё наоборот: свет рассчитывается от источников, а не от камеры. Источники света испускают фотоны, которые летят по сцене, сталкиваются с объектами, отражаются и преломляются, постепенно теряя энергию. В отличие от предыдущих методов, фотонная трассировка напрямую моделирует глобальное освещение, учитывая даже самые мелкие эффекты вроде каустики (это такие световые узоры на дне бассейна, например).

Почему трассировка фотонов круче?[править]

Основное преимущество фотонной трассировки в том, что она моделирует более точные взаимодействия света с объектами сцены. Например, она гораздо лучше справляется с такими сложными эффектами, как:

  • Каустика (когда свет преломляется через стекло или воду и создает яркие пятна)
  • Глобальное освещение (когда свет не просто напрямую освещает объект, а рассеянно отражается от других поверхностей, создавая мягкие тени и естественные световые эффекты).

В то же время, трассировка фотонов — это жутко сложный и ресурсоёмкий процесс. Да, оно круто моделирует свет, но видеокарта будет страдать, а рендеринг займёт столько времени, что ты успеешь сходить за кофе и написать диплом.

Для чего это всё нужно[править]

Ну, вообще, трассировка фотонов — это топчик для тех, кто хочет, чтобы картинка выглядела как в жизни. Кино, игры, рендеринг сцен для спецэффектов — всё это требует отрисовки света по-честному. Никакого фейка, только хардкор. Правда, на полную трассировку твоя видеокарта будет работать так, что нагреется как печка зимой. Видеокарты с поддержкой RTX и всякие там RT-ядра пытаются хоть как-то ускорить этот процесс, но если у тебя не топовое железо, то готовься к тому, что твой комп превратится в термоядерный реактор.

Зачем мне это[править]

Если ты хочешь графику уровня «чуть-чуть круче, чем реальная жизнь», и у тебя есть деньги на новую видеокарту, то трассировка фотонов — твоё всё. Но помни: если включить эту функцию на слабом компе, ты получишь примерно три кадра в минуту и сможешь варить кофе прямо на корпусе.

Telepuz 2.jpg Человек современный игры разные ценит весьма
МетаRPGИгровая консольШтампы в компьютерных играхИгровой движокТиммейтМассовый запрет игровых видео на YouTubeРейтыАгроWarcraft III — не канонАвтокликерДонат в игры из РоссииАрхидьявол (Герои 3)Лесные тени (Герои 3)Это собака?Blizzard измеряет соцсправедливостьЭто игра?Дроп (видеоигры)Надо, чтобы на КЧ напалПол это лаваКоллекционная играШахматная доскаВизуальная новеллаКонсольТяжёлые танки (World of Tanks)САУФлеш-игрыЛёгкие танки (World of Tanks)Консоле-холопыDe dust2Средние танки (World of Tanks)Кризис переводов современных видеоигр
RTSCommand & Conquer (Red Alert) • Company of Heroes 2Dune 2Dungeon KeeperDwarf FortressHomeworldStarCraftTotal AnnihilationTransport TycoonWarcraft IIIWarCraft (Дота: DotADota 2) • Warhammer 40K (Словарь) • Warcraft III: ReforgedСталин против марсианВластелин Колец: Битва за СредиземьеЖульничество в шахматахРусская кибердеревняShadow of the ErdtreeMulticrew Tank CombatHamster KombatОткрытый мирКастомизация персонажаDrakensang: The Dark EyeSword Art Online: Last RecollectionINDIKAArdenfallAzur PromiliaBlood Will TellSWORD ART ONLINE: Fractured DaydreamElden Ring против The Witcher 3Grand Theft Auto IV: The Lost and DamnedBirthright: The Gorgon's AllianceAr Tonelico: Melody of ElemiaПапкаDarksiders GenesisЧекпоинтRBK GamesChipin.GamesCheat Engine
TBSCivilization • (Master of MagicMaster of Orion) • Disciples (Sacred LandsDisciples: Liberation) • Disciples II (Мод Норвежской Сёмги) • Disciples IIIHeroes of Might & Magic (Heroes of Might & Magic 3IVВойны и денег) • Jagged AllianceKing's BountySeishoujo Sentai LakersTotal WarVGA PlanetsX-COMUFO2Extraterrestrials: Battle for MercuryКосмические рейнджерыФарм клоуновБольшая чёрная светящаяся сфераВойдзонаТень ОробиссаPlayMineFIFA (серия игр)Лунтик X: Проклятый омлетThe Legend of Zelda: Breath of the WildРуки Прочь (игра)BazaEnderaKZ IncTanks BlitzShadow Fight 2Hard Truck ApocalypseNever AgainShadow Fight 3EnlistedShadow Fight (серия игр)Бой с теньюProject ZomboidSharpshooter3dБакуганРаспуджовкаWho's Lila?Убийство АрхимондаNever Again 2Death Must DieHades IICall of Duty 3Stellar BladeSoldak Entertainment
RPGARPGArcanumBaldur's GateDark SoulsDeus ExDiablo (IIV) • FalloutGothicMass EffectMight and MagicPlanescapeTES (DaggerfallMorrowindOblivionSkyrim) • Vampire: the MasqueradeАллодыПокемоныElden RingTitan QuestВедьмак 3: Дикая ОхотаDiablo II: ResurrectedDiablo IIIGrim DawnFallout 4Mafia 3Path of ExilePlanescape: TormentMetal GearEscape from TarkovFableКорсары (серия игр)Русы против ящеров (игра)(Древние Ящеры Против Русов: Битва за Гиперборею) • Смута (видеоигра)Heroes of the StormMortal Kombat 1МусоуРоссийский The SimsIn the Wake of GodsCounter-Strike 2Найди отличияClash of ClansGTA: СмешарикиMarvel's Spider-Man 2ValorantЛесоморDriverSea of ThievesThe Coffin of Andy and LeyLeyСлавия: Русы против ящеровMy Summer CarS&boxУльтаГриферыS.T.A.L.K.E.R. 2.Мобильная игра «Русы против ящеров»Крестики-ноликиФабрика (Герои 3)Слово чушпанаClash RoyaleДонатная помойкаChieftain: The Daughter of the FireМультиплеерFNaF 57: Freddy in SpaceГамблингАзартные игрыСеранаТерритория ТьмыGrand Theft Auto: Online Crime WorldNeed for Speed: Underground (2003)Fear the wolvesКалибр (игра)Метрон (игра)Wolfenstein 3DКосчессВолт-ТекPlanetary Annihilation: TITANSArdub92СасикSupermassive GamesСтарый богAbiotic FactorMafia: The City of Lost HeavenХагги Вагги
MMORPGAionCorovaneer OnlineEVE OnlineEverquest 2Granado EspadaKantai CollectionLineage IIProgress QuestRagnarok OnlineRF OnlineSecond LifeTimeZeroUltima OnlineWar ThunderWorld of TanksWorld of WarcraftАренаБойцовский клубОлолодыСчастливый фермерХаббоRAID Shadow LegendsAlbion OnlineWorld of WarshipsThe Lord of the Rings OnlineArcheageSurvariumPoint BlankBattle CarnivalSZone-OnlineШарарамClan WarsFatCatВидениеConsul WarGNU MetroRMTCodename: Sailor V - The GameFFAБедварсSkyrim: Anniversary EditionRymdkapselYeerk's campPixelPlanetHogwarts LegacyMetal: HellsingerX-COM: Terror From The Deep40K ROSIGMAThe X-Com FilesBrutal-OXCEEMPRESSМемные карточки ХС2048Копатель ОнлайнFall GuysТранситиPizza TowerDiablo: The HellMordhauBionic Commando (2009)ElonaГрим ОгнепыхUnteralterbachDiamond RushЕкатерина СтадниковаПижама СэмMr. NutzBaldur's Gate 3CrossoutEx luxBrawl StarsStandoff 2Царь Соломон и шахматыМасонские шахматыАвтошахматыAgar.ioInjustice 2Mega Man 4DirectDrawMister Mix
ШутерыAtomic HeartBioShockBioShock 2BioShock InfiniteBloodCall of DutyModern WarfareCall of Duty: Modern WarfareCounter-Strike (CS:GO) • CrysisDead SpaceDoomDuke Nukem 3DHalf-Life (Garry's ModHalf-Life 3) • HitmanLeft 4 Dead (2) • Max PayneMetro 2033PostalQuakeSerious SamSingularitySystem ShockUnrealWolfensteinS.T.A.L.K.E.R.Team Fortress 2Шутер про Вторую МировуюCounter-Strike 1.6PUBGWatch DogsArmaBattlefieldContract WarsCross FireOperation Flashpoint (серия игр)Метро-2 (игра)Natsume! The Girl Warrior!Modern Combat VersusDenuvoRTXSpeedrunАдамант МультимедиаДмитрий РоммельДэвид МайерсRed FactionDarkБагоюзерствоЭпоха КлоновRed Dead Redemption 2CelesteАчивкаSega NomadВетераны ВОВРуслан ДиденкоМоршуNeed for Speed Most WantedМногоходовочка (игра)Олег ЯворскийЧерноруссияRagDollСаня ТропинGiboSteam MachinesЭльф-торговецHD-изданиеKane and Lynch 2: Dog DaysFor HonorИнди-хитыLegend of Total WarМидирGrimtoolsИгра в настольные игрыМетарабыПавел БурзаNetHackГюнтер о'ДимКирилл Баранов (Пятёрка)FunpayКанобуGwent: Rogue MageТюрягаРенфриOutlast 2Кастомизация оружияБетрезенResident Evil 7: BiohazardMarvel's Spider-ManRobloxFlatOutThrone and Liberty
Action-adventureActionAssassin's CreedGrand Theft Auto (СерияIIIIIIVVice CityChinatown WarsSA:MP) • Legacy of KainLost VikingsMafiaMinecraftPortalPrince of PersiaPrototypeResident Evil (4) • Space Station 13Splinter CellThiefTomb RaiderUnchartedGrand Theft Auto: San AndreasManhuntWheelmanWatch Dogs 2D&D OnlinePrime WorldWorld of WarplanesCrimeCraftPersona 2Rise of NationsCookie ClickerHumble Indie BundleТактические шутерыPersonaStar Wars: The Old RepublicSword Art OnlineВиртономикаLife is StrangeHeroes & GeneralsNew TekkenМор. УтопияE3Настольные ролевые игрыKenshiTransformiceJade DynastyQuest for GloryAsphaltAmong UsBattletechMagickaDragonStrikeГорький-17МеркиDayZNeverwinter NightsOutsideSonyChris-chanSuffer: Secluded quiet placeThe Wizard of Oz: Beyond the Yellow Brick RoadSourceНастольная играQuake IIQuake 4Смерть (Phasmophobia)
КвестыDemonophobiaLeisure Suit LarryNeverhoodPhantasmagoriaSam & MaxStanley ParableSyberiaThe Legend of KyrandiaYume NikkiРусские квестыТургорKyrandiaInitial DWhen They CryBattlefield 3Guild Wars 2DeepRockGalacticIngressKingdome Come: DeliveranceРетрогейминг HDCrash BandicootDefragDEFCONStreet FighterФайтингиMoswar.ruFahrenheitTekkenRocket LeagueBattlestar Galactica OnlineWarfaceFive Nights at Freddy'sResident EvilSilent Hill (P.T.) • The Last Of UsOutlastCodename CUREActive WorldsMr.PresidentMinecraft: Story ModeDark VoidDirectStorageDragon's Dogma 2Titan Quest 2Xbox Турция: Алярм, суки, аккаунты горят!KazioUndertale Yellow5 ночей с ТимохойИгру убилиWatcher of RealmsHeroes of Might and Magic: Olden EraБарбоскины (Roblox)Женщина на корабле к бедеУправление рандомомИвентТрассировка фотоновHZB OcclusionTressFXLove, Money, Rock'n'RollSchoolBoy RunawayКомпьютер ЁжикаNeed for Speed: Underground 2
ПрочиеВайфугеймFate/Stay NightKatawa ShoujoPhoenix WrightTsukihimeUmineko no Naku Koro niHigurashi no Naku Koro niБесконечное летоDoki Doki Literature Club!Yandere SimulatorSteins;GateКвадратные кроссвордыИстории Дида: МультивселеннаяDiablo IIПочему титаны слишком большого размера? (Хроники Хаоса)Души тьмыSegaФоллаут-онлайнГейлендКамень, ножницы, бумагаBASKACombats.ruАббревиатуры имени МедоксаОлег СтавицкийТанки ОнлайнThe Binding of IsaacUndertaleHotline MiamiМобильные игры • ККИ (ГвинтБерсерк (ККИ)Yu-Gi-Oh!) • Гача-игры (Genshin ImpactDiablo Immortal) • АвтобаттлерОнлайн-игрыMOBABeat 'em upСкурвившиеся игрыТанки free-to-playZumaLuxorStar RealmsHearthstoneGuilty GearKiller InstinctMortal KombatEliteF-19Guitar HeroKerbal Space ProgramSporeThe SimsДальнобойщикиИл-2 ШтурмовикPokemon GoАвиасиммерRustLockONKingpin: Life of CrimeAction 52Angry BirdsAnother WorldBattletoadsCarmageddonChip-chan KickContraCrimsonlandDangerous DaveDiggerEarthworm JimElasto ManiaFlashbackNekketsuPacmanGeometry DashRobot Unicorn AttackRockmanSnake Rattle 'n' RollStar ControlTouhou ProjectWorld of GooWormsВангерыОхотник на педиковПозвоните КузеСапёрТетрисХроники ХаосаNo Man's SkyPlague IncNeed For SpeedCave StorySpyroComix ZoneStar ConflictRockman 2: Dr. Wily no NazoSonic the Hedgehog (16 бит)Sonic the Hedgehog 2 (16 бит)Sonic 3 & KnucklesRockman 3 Dr. Wily no Saigo!?Candy Crush SagaТапалки в ТелеграмеAmong The SleepGLaDOS
Моды, карты и васянствоЛегенда о ТильдеParagonHorn of the AbyssJebus CrossX-PiratezOpenXComJebus OutcastThe World of Terrifying Silence6lm10a (шаблон)VANOMAS DEMO5 ночей с Тимохой 2: ДеревняСильная прокачкаSteampassФреймрейтNVidiaВзрыв лута
Игры реалаLEGOMagic: The GatheringБерсеркГоДоминоКамень-ножницы-бумагаКубик РубикаМонополияНа раздеваниеПокерПреферансРусская рулеткаСтрайкбол / Пейнтбол / ХардболШахматыЭкономические игры с выводом средств
App.png Весьма полезная вещь, позволяет машинам работать с помощью коммандычей
МетаПрограммаDRM (SecuROMStarForceАналоговая дыра) • БагБот (Автоответчик) • Варез (Repack) • ГлюкГуйДонатКопирайт (By design) • ЛогНюкРут (Не работай под рутом) • Спортивное программированиеМегапиксельКомпьютерВерсия 2.0КодОбфускацияСкриншотДатамайнПлагинТекстовый файлБольшие данныеАльфа и бета-тестыТаймстампКэшШаблоныHello WorldНейросетиФайлИнсталляцияВидеоМощный сбой Microsoft 19 июля 2024 годаCrowdStrikeПроект GNU
ФичиБагрепорт12309BSODCookiesEmbrace, extend and extinguishFL StudioSheep.exeWinlogon.exeБубенЗащита от дуракаКостыльМашинный переводПасхальные яйцаСвистелки и перделкиСм. рис. 1Съешь ещё этих мягких французских булокTermuxGNU MetroИндусский кодНескучные обои • Сжатие (За сжатие ДжипегаШакалШкала) • Работает — не трогайРандомайзерPDF (Распознавание PDF) • Дело Google в ФАСЧат-ботXMLМакросКритическая ошибкаФреймворкСинонимайзерSourceТрёхмерное отслеживаниеТрассировка фотоновHZB OcclusionДаунгрейд RTX 4070TressFXАвтопереводчик
ВредоносноеБотнетБрутфорсВинлокЗвонилкаКитайские пингвиныПиксель смертиТроянЧервь МоррисаBonziBuddyMediaGetBrowser hijackingTinderМиссис МажорУтечка буфера обменаWin 10 TweakerОпараш Mozilla FirefoxЯндекс.МузыкаКрэкерБезопасность через умолчаниеGrifter.aviTrojan.Winlock.DeathМиссис МажорСредаDirectStorageDriverpack
КомпанииApple / Apple (AppleScript) • GoogleMicrosoftSAPЯндекс
Движения8-bitOpen source (КрасноглазикиЛинуксоиды) • Вирусная сценаДаунгрейдДемосценаМоддингMMDDirectDrawЛаги
Офис3DS MAXGIMPGNU EmacsMovie MakerMS Paint • OpenOffice • PowerPointviMicrosoft WordExcelБлокнотФотошопАнтивирус КасперскогоAvast!TikZShareXAlternativeToСкрепышMicrosoft OfficeТекстовый редакторWeChatZoomДиспетчер задачMicrosoft CortanaWinampBallonTranslatorKerish DoctorОбщая ошибкаFirefox: Как один баг сломал весь YouTubeМеждулициеMeld StudioLadybirdCheat Engine
ОСAndroidBSDDOSMenuetOSReactOSWindows (Phone 7Phone 878Vista) / МаздайЛинуксРусская ОСФантом ОСIndex.php
БраузерыInternet ExplorerОпера / Opera • Тормозилла (ОгнелисLolifoxMozilla FirefoxFirefoxFirefox Klar) • Хром (шпионаж) • SafariЯндекс.БраузерУведомления в браузереVivaldiTor-браузерЗосимаФронтенд
ИнтернетAdobe Systems (Flash) • I2PLow Orbit Ion CannonTorTunatic • Чат−клиенты (MirandaQIPSkypeЖабберDiscordVIPole) • HTTPSПрокси-сервер (Proxifier) • Торрент (Magnet-ссылкаΜTorrent) • JavaScriptCSSHTMLБаннермейкерИзменение TTL сетевых пакетовКапчаICQFiddlerViberZonaSteamSillyTavernWickr Me
РазработкаBrainFuckCC++C#JavaHaskellАссемблерChaos ConstructionsBATMySQLGitHubAutoHotKey (AutoHotInterception) • Sublime TextAPK (APKPureзапрет) • BASICPerlPythonPHPФоркUnity3DSAISIPСАПРФлагUTAUФласк макросАуработRaidCallAdobe MingОфициальный™ список кошерных программDevOpsНиколай Дуров
ЛюдиВеб-мастерLovinGODБалмерГейтсГенерал ФейлорДжобсМитникПоттерингде РаадтСпольскиСтоллманТорвальдсШахиджанянAche666Марк ЦукербергЕвгений ПоповДенис КумпонМассовая компьютерная безграмотность
КостылиCygwin • PunkBusterT9WineWishmasterАнтивирусыХакинтошСборки WindowsDenuvoЧистая установкаКалькулятор Consul WarMicrosoft StoreUBlock OriginLightshotAdBlockSearchApp.exeCPU-ZГуглPhotoshopКаптча с пчёламиВзлом Windows через Metasploit
Команды^H^WAlt+F4Ctrl+Alt+Delman/me/quitrm -rf