суббота, 24 декабря 2011 г.

DirectGL progress

По работе вытащил уже запылившийся DirectGL, и увидел что многое надо переделать. В итоге меня занесло и я сел дописывать функционал D3DX.

Во-первых, я серьёзно взялся за загрузку текстур через D3DX API. Тут я многое позаимствовал из кодов Wine, а именно иерархию вызовов при загрузке текстуры, различные проверки, способ мэппинга файла в память и т. д. Пока что грузятся палитровые и true-color BMP файлы, TGA с RLE-компрессией и без, работает распознавание DDS файлов. Последний формат довольно сложен (поверхности, cubemap-ы, объёмные текстуры, куча форматов, расширения DX10+), так что надо выкроить время на его поддержку.

Во-вторых, я реализовал загрузку простых файлов формата .x, но быстрым путём: создаются интерфейсы Direct3D для временного окна и грузится реальный меш, потом данные копируются в OpenGL реализацию интерфейса ID3DXMesh :) Конечно этот способ непортируем, зато позволяет проверить насколько работоспособен код рисования.

Результат:

Комментариев нет:

Отправить комментарий