[Проект] Raytracer

  1. Идея:http://en.wikipedia.org/wiki/Ray_tracing_%28graphics%29

    А ето и какви мисля да имплементирам:
    -разбира се raytracer (тресиране, камера,парсване на сценов файл, записване на резултата в някакъв img формат)
    -пресичане с равнина,куб,сфера
    -текстури
    -триъгълни мрежи


    Опционални:
    -заден фон със Spherical mapping
    -отражения

  2. @Александър - проекта ми харесва. Одобрявам го. Надявам се, че ще имаш достатъчно време да го завършиш и извинявай за забавения отговр. Обаче знай, че за нас едно от най - важните неща е проекта да е завършен и да прави това, което си обещал. Все още можеш да премахнеш някой от фийчърите :)

    Само не съм сигурен, че разбирам какво искаш да кажеш с "пресичане с равнина, куб, сфера и техни сечения". Искаш да имаш обекти в света, които са сечения на сфери, кубове и равнини?

    @Йончо - след като Александър направи неговия raytracer той ще стане доста по - добър от моя в момента, така че на него ще дадем титлата специалист :D

  3. Аз дори ти предлагам да сложиш текстурите към Опционалните и да сложиш цвят в задължителните вместо него (дори да е random, ако искаш). Рейтрейсър не е лесно да се имплементира, особено на сравнително непознат език. Вероятно ще забиеш на много места, така че стреми се проектът ти да е с минимални задължителни изисквания, за да тръгне и да работи. И след това надграждай с каквото друго трябва или пък ти е интересно.

    Някъде бях чел, че при описване на игра (в някой от дизайн документите) трябва фийчърите да се разделят в поне три категории (имената ги измислих, че въобще не ги помня): 1) Задължителни (без които играта не може да мине, основното в нея, т.е. обещавам че това ще направя); 2) Желани (имплементират се след задължителните и колкото има време за тях); 3) Бонус (нещо, което би било много хубаво да се направи, но играта може спокойно да мине и без тях, ако се наложи).

    Именно по този начин аз ще си разделя моя проект. Ще гледам да имплементирам всичко задължително, колкото да работи и да има нещо общо с основната идея, след това каквото мога от желателните и колкото време имам. И, евентуално, ако остане време, а всичките желателни са имплементирани, може да подхвана нещо и от бонуса. Но надали.

    Така че помисли, кой ти е наистина bare minimum, с който можеш да минеш и да имаш някакъв рейтрейсър, макар и почти неизползваем в нормалния живот, но все пак да рейтрейсва нещо. Това ще ти е "Задължителното" (например трасиране на кубове, random цвят, един лъч на пиксел, без после да се отрязява (т.е. просто взимаш звета където е попаднал)).

    След това сложи в Желаните фийчъри, това, което ще го направи все пак един ограничен, но достатъчно кадърен рейтрейсър (тук вече може и да не успееш да имплементираш всичко, но голяма работа, поне имаш минимума). Тук можеш да сложиш трасиране и на други обекти като равнини, сфери, сложи текстури или пък не произволен цвят, повече лъчи на пиксел.

    Вече в бонуса можеш да сложиш разни шейдъри и BRDF-и като отражения, пречупвания. Трейсъра да не спира след първия hit, ами създава няколко нови лъчи и пуска тях, normal и bump map и т.н. Тук вече можеш да оставиш въобръжението да се вихри и лигите да текат. Вероятно няма да стигнеш до никое от тия преди края на курса, но кой знае. Пък и току виж си го продължиш след като си предадеш проекта, например в свободното време или някое и друго лято.

    Този подход има и added bonus: ще ти е много трудно да напишеш завързан на възел код (най-малкото после ще ти се наложи да го рефакторираш).

  4. Александър, съвсем умишлено сайта на курса има форум, а няма лични съобщения. Целта ни е да се учим заедно на нови и интересни неща. Да, включвам и себе си и останалите преподаватели в горното изказване.

    Очевидно Евгений разбира поне малко от темата на задачата и очевидно е вложил известно количество време и усилия в опита си да ти бъде полезен. Даже лично аз съм съгласен с голяма част от съветите му за организация на работата, но и на мен никой не ми е искал мнението :)... Явно обаче ти не си съвсем съгласен с тях или с начина на представянето им. Моля те, нека запазим добрия тон. Ако пък имате някакви проблеми от лично естество, не е тук мястото за тях. Благодаря.

    Edit: на следваща лекция ще ви кажем по-подробните изисквания към проектите, но да - тестовете и документацията са задължителни. На този етап обаче се опитваме да ви концентрираме върху самите идеи, scope-а им и някакви по-общи архитектурни детайли.

Трябва да сте влезли в системата, за да може да отговаряте на теми.