Image-Based Lightning
- Forums:
По-късно съм сигурен, че ще публикувам по-смислени въпроси, но първата ми спънка е че след като се update-на, проекта не ми тръгва. Не ми намира хедъра cxxptl.h. Имам само dummy версията му. Предполагам и от там идват останалите грешки, като например, че не ми разпознава Mutex или InterlockedInt като типове. Предложения?
Comments
В src/ действително го няма
В src/ действително го няма този хедър. Или си го копирай там, или смени " с <> , за да търси в системните пътища (включително там, където си инсталирал библиотеката). При мен и двата начина сработваха, с тази особеност, че трябва да линкнеш библиотеката в проекта. Поне при мен така стана на Mac/Hack OSX (в случай, че има значение ОС-а).
Виж тази тема: Компилиране с
Виж тази тема:
Компилиране с cxxptl / настройки / среди
Проблеми с HDR
Открих, че стандарта за header-a на HDR картинките малко се е променил с годините. Т.е. ако използвате библиотеката от http://www.graphics.cornell.edu/online/formats/rgbe/ може да имате проблеми с парсването на header-a на HDR-ите. Решението е да си пренапишете парсъра (не е трудно). Отделно някои от HDR пробите, които можете да си намерите в нета са дефектни (дават грешка - "bad scanline data"). Или може би дефекта отново е в парсъра :)
Проблеми с Path Tracing
За Image-based-ligthning трябва да използваме и модифицираме path-tracing алгоритъма, нали. Обаче за да се получи някъкъв приемлив резултата трябва да set-нем NUMPATHS>=1600. Проблема е, че моя компютър е на 5 години и ще му отнеме още 5 за да сметне всичко това!
Как ще разбера, че всичко това работи правилно без да го пускам с големи стойности на NUMPATHS?
Можеш да изрендерираш с висок
Можеш да изрендерираш с висок брой пътища (чак 1600 не, да речем по-скоро 400-500) при ниска резолюция (320х240 например) за да придобиеш някаква приблизителна представа. Иначе как точно да ускорите IBL, така че да отнема някакво приемливо време (и малък брой пътища, примерно не повече от 100) си е част от ресърча, който се очаква да направите по задачата. Едно от възможните решения е да превърнете environment-а в лампа (буквално - като създадете нов наследник на Light класа) и, при пускането на лъчи към лампата, да ползвате importance sampling (като концентрирате изстрелваните лъчи към ярките области на HDR-а).