1.Добавил скриншоты на гитхаб.
2. Отрефакторил код.
3. Разделил реализацию Cpu и Gpu рендера.
Обновил readme на гитхабе.
По технической части осталось.
1. Доделать вариант софт рендера.
2. Реализовать поддержку фулл скрин и динамическое переключение.
3. Написать тесты для графики.
Как только данный функционал будет реализован, уже можно думать о дате первого релиза.
Приобрёл ретро ПК, для нативного тестирования.
Видеокарта
NVIDIA GeForce 6600 GT
Процессор Pentium 4 3.0 GHz
Мат плата asus p5gd1 pro Socket LGA775
ОЗУ 512 мб
Hdd 80 gb
Позже приобрету видеокарты на шине pci подревнее.
JordanCpp
> Приобрёл ретро ПК, для нативного тестирования
Ооо, прикольно))
У меня максимум по древности вот такой есть:
AMD Athlon 64 3000+ || GeForce 7300 GT || DDR 1 GB
Приветствую.
На данный момент исправил баги и немного отрефакторил код. Дополнил примеры.
Вывод простенькой тайловой карты.
Сами тайлы взял из интернета.
По графике осталось добавить функционал масок и доработать графический функционал для поддержки квадратных текстур. И в принципе минимальный 2D функционал будет готов.
Следующим шагом, добавлю поддержку звука.
Начал портировать фреймворк на OpenGL 3.3
Так как я никогда не работал с графикой выше OpenGL 1.2, для начала решил портировать
уроки от Ravesli.
При портировании столкнулся с недоделками фреймворка, связанные с обработкой событий, надо будет доработать.
Столкнулся с тем, что библиотека glm не поддерживает компиляцию в Visual C++ 6.0 Однако под Windows 98 нет драйверов с OpenGL 3.3, поэтому не вижу смысла оставлять поддержку для рендера OpenGL 3.3. Совместимость останется для OpenGL 1.2
Проект развивается, конечно не стой скоростью, но тоже неплохо:)
Еще как вариант, написать свой минимальный glm, взять из проекта matrix4 и переписать для совместимости. Тогда не будет зависимости в проекте от glm и можно будет использовать для всех версий OpenGL и DirectX.
JordanCpp
> Еще как вариант, написать свой минимальный glm, взять из проекта matrix4 и
> переписать для совместимости. Тогда не будет зависимости в проекте от glm и
> можно будет использовать для всех версий OpenGL и DirectX.
А если просто подправить версию glm у себя, чтоб она собиралась нормально?
Vlad2001_MFS
> А если просто подправить версию glm у себя, чтоб она собиралась нормально?
Слишком много работы. Уже пробывал.
Добавлю классы mat4 и vec3 по аналогии как в glm. Но без шаблонной магии:)
И функции
perspective
ortho
translate
rotate
scale
github + google = еще один велосипед:)
JordanCpp
> Слишком много работы. Уже пробывал.
Понятно, тогда нафиг, да. А просто старую версию пробовал брать у glm? У нее на github(https://github.com/g-truc/glm) есть changelog и можно прям на главной странице поиск сделать по "C++", чтоб глянуть когда поддержка дропалась и тд.
Ну а на крайняк уже да, велосипед))
Vlad2001_MFS
> А просто старую версию пробовал брать у glm? У нее на
> github(https://github.com/g-truc/glm) есть changelog и можно прям на главной
> странице поиск сделать по "C++", чтоб глянуть когда поддержка дропалась и тд.
Точно, вообще забыл о данной возможности. Посмотрю может и заведется.
Vlad2001_MFS
> Ну а на крайняк уже да, велосипед))
Я уже написал весь мне нужный функционал,остался rotate.
За базу взял эти исходники.
Старался сделать минимальные отличия.
Библиотека GLM
glm::mat4 view = glm::mat4(1.0f); glm::mat4 projection = glm::mat4( 1.0f); projection = glm::perspective( glm::radians( 45.0f), ( float)window.Size( ).PosX( ) / ( float)window.Size( ).PosY( ), 0.1f, 100.0f); view = glm::translate( view, glm::vec3( 0.0f, 0.0f, -3.0f));
Велосипед:)
LDL::Math::Mat4f view; LDL::Math::Mat4f projection; projection = LDL::Math::Perspective(45.0f, ( float)window.Size( ).PosX( ) / ( float)window.Size( ).PosY( ), 0.1f, 100.0f); view = LDL::Math::Translate( view, LDL::Math::Vec3f( 0.0f, 0.0f, -3.0f));
JordanCpp
> Приобрёл ретро ПК, для нативного тестирования.
А надо P1 с GF MX :)
Заменил glm почти во всех примерах на свой лесопед. Таки работает. Впилил еще матрицы в туториал от Nehe.
Рендерферма кроликов
> А надо P1 с GF MX :)
Да без шуток. Я примеры (рендер на OpenGL 1.0) и туториал от Nehe тестирую на таком виртуальном железе.
Windows 98, pentium 166, Vodoo 3000. И оно работает!
Только примеры на OpenGL не запускаются на Windows 95. Ошибка стиля: программа выполнила недопустимую операцию или что, то там по адресу.
В софтрендере работает.