PDA

Просмотр полной версии : 3D движки



tae1980
14.07.2019, 21:26
С полгода назад видел материал с описанием существующих 3D движков. Не могу сейчас найти.
Может подскажет у кого есть?

krotan
14.07.2019, 22:55
https://idpixel.ru/news/1739-kak-mog-by-vygljadet-3dshuter-dlja-zx-spectrum/

tae1980
15.07.2019, 08:36
Не совсем то, тут больше хотелки, а не описание. Вот тут (https://zxpress.ru/article.php?id=18242) нашел одну статью с описанием от 2017 года. Но там не на всё есть информация где брать.

- - - Добавлено - - -

Немного изменю вопрос. Хотелось бы подобрать движок для того что бы потрогать руками по следующим признакам, по мере убывания значимости:
1. Быстрый. Это понятно.
2. Точность до пикселя.
3. Наличие заливки.
4. Функциональность. Возможности должны быть минимальны, но достаточны для большинства задач.
5. Вменяемое описание или комментарии по коду. Что бы можно было разобраться.

Будут ли рекомендации? И где их вообще брать?

Shiny
15.07.2019, 08:52
Будут ли рекомендации? И где их вообще брать?

на opensourcezx есть сырки 3D lame. Может, пойдут на пользу.

Вменяемое описание. В интернетах гуляет книга "Компьютерная графика : Динамика, реалистические изображения", Шикин Е.В., Боресков А.В. , издание достаточно вменяемое по сравнению с издательствами "СОЛОН".

в старое время мне хватило таких уроков (https://cheaters-heaven.com/cheats/tutorials/21630-the-peroxide-programming-tips.html), есть целая серия. Найдутся и другие, правда на английском.

tae1980
15.07.2019, 09:24
на opensourcezx есть сырки 3D lame. Может, пойдут на пользу.
Ага, спасибо. Будем изучать.


книга "Компьютерная графика : Динамика, реалистические изображения", Шикин Е.В., Боресков А.В.
Эта книга есть и в бумажном виде, впервые прочитана как вышла.
Но это путь "с нуля", так там описана основа. А хотелось бы именно движки, которые брали бы на себя сочетании хранения, обработки и вывода информации.

Shiny
15.07.2019, 09:27
неясна цель поиска

tae1980
15.07.2019, 10:04
неясна цель поиска
Понять текущие возможности. И хотелось бы получить готовый инструмент.
Начать можно с построения 3Д модели, по данным из файла.
Вот тут (https://habr.com/ru/post/248153/) неплохой цикл статей по практической 3Д графики. Взять и начать реализовывать приведенные примеры на спектруме. Только не с уровня "поставить точку", а повыше, раза в два.
А дальше действовать из ходя из полученных результатов.

Shiny
15.07.2019, 10:10
Глобальный проект, однако.

tae1980
15.07.2019, 10:53
Глобальный проект, однако.
да ладно :)
Я эти уроки уже переносил на rexx, ни чего сложного. Одно занятие можно переносить максимум за пару дней. И не обязательно переносить все, мне сейчас нужно понять основу.
Но загвозка как раз в инструментарии: чем/как считать, как хранить данные, чем рисовать. На эти вопросы должен ответит движок. Вот я и спрашиваю, есть у нас что-то что можно назвать "движком". Или только разрозненные наборы процедур, плохо связанных между собой.

Shiny
15.07.2019, 11:10
Не понятно, что "плохо связанных между собой". Если есть цель отображения 3d фигуры, то получается: поворот координат вершин, проекция (в идеале), отсечение невидимых граней, отрисовка линий или граней. Если есть такая задача, то удобнее написать код самому, используя готовый материал или наработки.

Статья на хабре - графоманство чистой воды. Хей, я осилил, как рендерить чудиков, я всем расскажу!

OpenGL несколько сложнее для освоения, удобнее цикл уроков от NeHe, уроки переведены и код адаптирован на разные языки - ассемблер, Си, Delphi. Простым шагом будет определение координат, материала и вызов функции для отрисовки - точки, линии, треугольники и другое.

tae1980
15.07.2019, 11:46
Не понятно, что "плохо связанных между собой".
"движок" должен решать три основные задачи: хранение данных, обработка данных и их вывод на экран.
То есть мне бы хотелось иметь ситуацию, когда описываешь данные на основе требований "движка" и с использование его вспомогательного инструментария. Потом производишь обработку этих данных так же инструментарием движка, и средствами движка выводишь данные на экран. Если грубо то так: вот тебе модель, поверни её на такой-то угол и выведи на экран по таким-то координатам.
Если такой уровень не достижим, то мне нужно понимать, что же реально можно "получить" от имеющихся "движков".


Статья на хабре - графоманство чистой воды.
Статья для меня такой же инструмент как и "движок", там детально описаны основы, и по ним как по нотам можно проверить все возможности "движка". Не более.


Простым шагом будет определение координат, материала и вызов функции для отрисовки - точки, линии, треугольники и другое.
Разве спорю с этим? Но кто это должен делать? Я как программист, или всё таки "движок"? Искренни считаю, что основную работу должен делать "движок", а иначе это и будет "плохо связанных между собой" процедуры. Тут нам нужны данные в таком виде, тут в другом, а тут в третьем. И начинается жонглирование. Тут есть процедура вывода линии, тут процедура обрезки не видимых частей, но вместе они, по како-то причине, работать не могут. И вместо того что бы просто дать команду на вывод объекта, программист должен "в ручном" режиме обсчитывать каждую его грань.

Shiny
15.07.2019, 11:51
по описанию выходит, что для Спектрума нужен 3D modeller. это не глобально, а утопично.

tae1980
15.07.2019, 12:10
по описанию выходит, что для Спектрума нужен 3D modeller. это не глобально, а утопично.
А разве дема "3D lame 4k intro" утопична?
Она визуально реализует всё то о чем я говорил. Не знаю, что у неё внутри, она на Alasm'е, а я не его фанат. Сейчас выкачиваю, буду изучать код.
Но это только один из вариантов. Хотелось бы увидеть и другие. И вопрос заключался в просьбе подсказать, на какие из существующих движков стоит обратить внимание.

Shiny
15.07.2019, 12:31
А разве дема "3D lame 4k intro" утопична?

Демо, это демо, а не программа для хранения, обработки и визуализации данных.


Не знаю, что у неё внутри, она на Alasm'е, а я не его фанат.

Насколько мне помнится хранятся данные фигур, таблицы адресов экрана для вывода, таблица синусов для поворота и таблица квадратов для умножения.

Из демо вспомнились eihwaz (https://zxaaa.ru/view_demo.php?id=8862) и Micro Figures (1k intro) (https://zxaaa.ru/view_demo.php?id=8532), но исходники не публиковались. Вряд ли авторы поделятся.

NEO SPECTRUMAN
15.07.2019, 15:32
Вот я и спрашиваю, есть у нас что-то что можно назвать "движком".
скорей всего оно будет в таком оптимизированном виде
что суть врят ли можно будет с ходу понять
а комментариев сбоку не будет :)

Dart Alver
15.07.2019, 21:55
Вот тут нашел одну статью с описанием от 2017 года.
Ну там-то как раз не одна. )) Там в IG12 Alone Coder долго про 3d движок распинался (а если сам журнал (http://alonecoder.nedopc.com/zx/books/IG12.zip) взять там ещё и демки есть и исходники), правда я нифига там не понял, не моё ))

tae1980
15.07.2019, 22:37
Dart Alver, очень, очень много интересного. Жаль, что я не видел раньше этого номера.