Software Rasterizer
Вложений: 1
Пописываю время от времени софтварный растеризатор :-)
На даный момент реализовано: - Depth Test - Depth Early Test - Alpha Test - Alpha Blend - Culling - None,BackFace,FrontFace - 1D,2D Texture - Vertex\Pixel Shader's Демка не большая( Необходимы редисты 2008 вижл студии ),в демке простое по пиксельное освещение от направленого источника,разрешение 1024x768: |
Ответ: Software Rasterizer
Интересная вещь, но:
- Текстура не отображается (она должна быть на чайнике?) - Хотелось бы посмотреть зависимость производительности от полигонажа сцены и разрешения текстур. - Vertex\Pixel Shader's это как я понимаю софтварный аналог шейдеров, но он ничем не ограничен? Будет стандартный базовый набор? - Смысл написания такого рендера не совсем ясен. Сейчас наоборот стараются делать более программируемый процесс рендера (теже вычислительные шейдеры dx11) чтобы для каждого приложения можно было делать оригинальные варианты, а в этой демке как бы даже не API а сам рендер... - Есть возможность посмотреть коды? |
Ответ: Software Rasterizer
Цитата:
- Зависит не от полигонажа а от растояние,тоесть если даже взять тупо один триугольник подлететь к нему чтобы он отображался во весь экран,то фпс будет равен 0.0005 :). - Код:
class TestVertexShader : public VertexShader - Пока проект не опенсурсный,но как надоест,выложу сурсы :) Сурс демки(программы) Код:
static Texture2D* diffuseMap = 0; |
Ответ: Software Rasterizer
Вложений: 2
Вот с текстурой(3 чайника),фильтрация текстур - BILINEAR.
|
Ответ: Software Rasterizer
Текстура всеравно не отображается...
Да короче производительность влияет от кол-ва пикселей на экране и их глубины (также как и в программном режиме пиксельных шейдеров в DirectX) - это проблема для отрисовки закрытых пространств и скайбоксов. SDL (это та SDL которая кроссплат OpenSource ?) ты используешь для взаимодействия с видеодрайвером? На каком уровне это происходит? У меня раньше тоже была идея сделать рендер и графический API, даже видеодрайвер хотел переписать (вроде были под Linux с открытым кодом видеодрайвера) но ИМХО сейчас с появлением программируемых шейдеров я могу практически любой алгоритм отрисовки закодировать и необходимость отпала... Софтварный рендер будет эффективен в системах с цп без программируемого гп, например скоро выйдет процессор на ядре Clarkdale с видеочипом внутри (как бы тока DDR3 не оказалась медленной чтобы конкурировать хотябы с средними видеокарточками). Короче у цп должно быть достаточно много FPU, как например Cell в PS3. Возможно на новых сотовых телефонах такие мультимедийные цп будут... |
Ответ: Software Rasterizer
Цитата:
SDL юзаю только для создания окна,и заливаю в него отрендереный бекбуффер. Ну с появлением CUDA & OpenCL я могу переписать свой растеризатор на GPU,без неоходимости написания всяких видеодрайверов :) |
Ответ: Software Rasterizer
Цитата:
Дело в том что работа с драйверами или напрямую с железом дает некоторую свободу действий вне ОС. Вдруг например появится новая ОС а тут и видеорендер готов :) ИМХО еще в течени двух лет есть смысл придерживаться стандартов OpenGL и DirectX |
Ответ: Software Rasterizer
Цитата:
А OpenGL с приходом OpenGL 3.0,3.1. Хочется что то свое что будет удобно во всех аспектах для себя... З.Ы. CUDA SDK,есть под 3 оси,Windows,Linux,Mac. |
Ответ: Software Rasterizer
Да OpenGL 3.0 провалился из за команды Khronos помойму. DirectX 10 тоже был не удачный, потому что перестройка была. А вот я читал про DirectX11 вроде даже ничего - тесселяция и мп-рендеринг перспективные направления, я сейчас в DirectX9 работаю но потом сразу планирую на 11 прыгнуть.
В целом у тебя зачетная вещь. Как будет готово я попробую его использовать. |
Ответ: Software Rasterizer
Цитата:
|
Ответ: Software Rasterizer
Не на асме закодируешься шейдеры писать. Может тебе просто взять компилятор какогонибуть ЯВУ?
Самый просто вариант у рендера сделать поддрежку плагинов ввиде динамической библиотеки - вот тогда они и будут как шейдеры, даже больше. |
Ответ: Software Rasterizer
Igor'
а зачем всё это ? растеризация на cuda\opencl будет в десятки (сотни?) раз медленнее чем напрямую гонять данные в opengl (по-сути cuda\opencl и есть такая же обвертка как и opengl или directx, видеодрайвер нужен в любом случае, в обход него не напишешь потому что у тебя нету спецификации видеочипа, я её видел только для ati r500) софтварный растеризатор не сможет дать качество и скорость лучше чем видеокарта, но если уж совсем горит - есть софтварная open source реализация mesa 3d для рейтрейса не подходит сама архитектура видеочипа, тут как не думай - будет медленно, а софтварному рейтрейсу и не нужна скорость, да и их уже полно создали, выбирай какой нравится единственное где я вижу применение такому подходу - playstation 3, там некоторые графические фишки не боятся просчитывать на CPU |
Ответ: Software Rasterizer
Обдумал класс драйвера,щас пишу софтварный драйвер,а сам растеризатор,пардон,GAPI,да да оно самое будет уже юзать класс драйвера :)
Код:
class BAPI Driver |
Ответ: Software Rasterizer
Обдумал шейдерный язык,версия 1_0
VS Код:
Код:
Для софтварного драйвера готов парзер и интерпритатор. |
Ответ: Software Rasterizer
имхо выгодней было бы сделать поддержку существующих шейдеров а не выдумывать свои
|
Часовой пояс GMT +4, время: 02:21. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot