Новый старый рендер. Kray and GPU.

Kray переходит на GPU

Никому не нравится тратить время на рендер, и мне хотелось бы использовать столько компьютерных ресурсов, насколько это вообще возможно. Kray полностью переходит на GPU. В данный момент проделано уже достаточно большое количество работы, и Kray будет рейтрейсить на GPU через OpenCL.
Чистый рейтрейс - это значит никакого шейдинга, только просчет пересечения луч-геометрия (и вы можете протестировать это даже внутри ЛВ, правда потребуются некоторые команды в командной строке. Продвинутые пользователи могут написать 'help gpgpu', 'help opencl', 'help raycast' в Kray Commander в ЛВ и поиграть с ними).
Этого слишком мало, чтобы отрисовать что-либо, но с моей точки зрения большая часть сложных вопросов уже решена. Механизм для переноса геометрии и лучевой кэш в GPU работают и само ядро работает нормально.

Поддержка и разработка GPU-рендера не является приоритетом по двум причинам. Первая - у нас есть баглист, и исправление существующих ошибок - основная задача.
Второе, я хотел бы перенести шейдинг и алгоритм рендера на OpenCL 2.1, который позволяет использовать ядра, написанные на C++. Это ускорит разработку и уменьшит стоимость дальнейшей поддержки. Я выбрал OpenCL, потому что это промышленный стандарт и, если у вас есть встроенное GPU на материнской плате и внешняя графическая карта, вы сможете использовать и их обоих, и CPU в качестве дополнения.
EDIT: OpenCL 2.1 достаточно молод и еще не очень хорошо поддерживается.

В дискуссиях на тему CPU vs GPU я бы хотел поддержать обе стороны. Некоторые задачи быстрее выполняются на GPU, некоторые возможны только на CPU. Для GI-насыщенных сцен гибкость и алгоритмы, используемые центральным процессором (повторное использование данных, использование приближенных вычислений), дают больше преимуществ, нежели тупая мощь брутфорса на GPU. Для простого освещения без большого количества отражений выбор GPU окажется более предпочтительным.

G.Tanski (http://www.kraytracing.com/phpBB3/viewtopic.php?f=60&t=4873)