Closed Alex-Kalinin-jr closed 8 months ago
На данный момент:
На данный момент: изучены уроки по OpenTK. Запрограммирована простейшая сцена с возможностью перемещения камеры мышкой и клавишами (как в Counter Strike - по урокам, с минимальными отступлениями). проблемы:
В очередной раз запутался с матрицами и кучей состояний, что как формируется и почему так, а не иначе...радует, что теперь - осознанно и с пониманием материала. Задача: подумать, как быстрее все это запомнить.
Непривычна IDE. Привычные возможности попросту отсутствуют, горячие клавиши почему-то слетают, разделить окно и работать в многооконном режиме - не получается. В интернете информация, которая при проверке не работает. Задача: понять, как упростить себе жизнь с Microsoft Visual Studio. Хотя бы найти copy_line_up, copy_line_down и сделать так, чтобы Ctrl+/ не слетала при бинде на комментирование. Довести до ума автоформатирование (выбран C# Google Style) и ограничить самодеятельность IntelliSense.
Непонятна математика векторов OpenTK.Mathematics. Ощущение, что vector3 создан исключительно для crossProduct. Как пример: почему Vector4 += Vector4 можно, а Vector3 += Vector3 - нельзя.
Проблема решена: OpenTK.Mathematics. и System.Numerics имеют Vector3. Нужно уточнять пространство имен.
Инкапсулировать матрицу модели. выполнить Первичный тест работоспособности архитектуры.
Непонятно, почему не отрисовывается Multiple objects. Ошибок нет, приложение запускается, но куб всего один на экране.
Ощущение, что я до конца не понимаю отношения в автомате состояний. Мне непонятно, как и что переключать для отрисовки контекстов. Нужен ли свой VBO для каждой фигуры, что делает VAO, VBO и другие буферы помимо того, что переключают ints...что происходит под капотом, когда они переключаются. Учебный пример №2 не компилируется. Ссылка: https://github.com/neokabuto/OpenTKTutorialContent/blob/master/OpenTKTutorial4/OpenTKTutorial4/Game.cs Задача: до конца выяснить устройство автомата состояний openGL: что можно переиспользовать, что должно быть своё, отдельное, для каждой отдельной сущности и т.д.
Проблема с показом нескольких объектов решена (дело было в масштабе смещения второго объекта, все работало правильно). На данный момент у каждого Volume собственные VBO и VAO. В дальнейшем обдумать, нужны ли разные VBO (переключение контекста - дорогой процесс, судя по постам в интернете.
https://lib.samtuit.uz/uploads/files/61e51d0d357914.48045780.pdf http://cs.uns.edu.ar/cg/clasespdf/GraphicShaders.pdf прочитать (бегло) книги по шейдерам. Постараться не запутаться.
Разобрался с VBO, VAO. Научился привязывать к VBO несколько буферов и прокидывать данные в шейдеры. Разнес создание буфера координат и буфера цветов на отдельные функции (предполагаю, что в дальнейшем добавятся буферы нормалей, координат текстур и буферы будем биндить в зависимости от наличия). Перехожу к нагугливанию морфинга в сферу. Предварительно проведу ручные тесты парсера obj файлов. Пока все без unit-тестов, так как при изучении меняется видение процесса, следовательно - архитектура.
Всё ещё происходит развёртывание инфраструктуры? Когда начнётся выполнение задач?
1) Установить windows (изучить процесс установки поверх Debian с уже размеченным LVM, если долго - переустановить все заново). 2) Установить Visual Studio. 3) Развернуть необходимое окружение. Запустить helloworld. 4) Внедрить imgui.Net. Создать и запустить простейшее GUI app.