Без OpenGL? Значит ищем трехмерную математику, перспективную проекцию точек на экран, потом scanline алгоритм закрашивания треугольников, потом добавляем z-буфер и все готово. Пишется за день.
Делал лабы по графике (на Qt). 1 - несколько кубиков, 2-ая проекция плоской фигуры на 3-д фигуру (ЕМНИП на седло (непомню правильно ли она работала)). http://rghost.ru/37285762
Без OpenGL? Значит ищем трехмерную математику, перспективную проекцию точек на экран, потом scanline алгоритм закрашивания треугольников, потом добавляем z-буфер и все готово.
Пишется за день.
А почему не за час?
вот за что я люблю ЛОР, так это за то, что тут у всех язык без костей.
Я писал это за день на j2me, начиная с полного незнания тех слов, что я перечислил в своем сообщении.
Проекция — 2 формулы (на самом деле одна, но можно обойтись без матриц). Заливка треугольника хорошо гуглится, причем по шагам — простая, с z-буфером и двумя типами текстурирования. Код работает сразу же после переноса к себе (неудивительно, там малюсенькие функции, правда на Си).
После этого можно перейти на матрицы и добавить отсечение, но по описанию автора темы это не обязательно.
Да, как всегда, не обойдусь без самопиара. Хоть программка и сильно не дописана, отображение 3D объекта (с использованием VBO или списков - в зависимости от железа) и его вращение/перемещение реализовано. Причем, с openGL все довольно просто делается.
// в downloads могут быть староватые файлы, лучше делать hg clone
Да нет, просто это делалось в те времена, когда на большинстве телефонов не было апи для 3д графики, а было интересно. С нуля до закрашенного объекта с z-буфером — за день, потому что, как уже написал, есть хорошие статьи с портируемым рабочим кодом.
Проекция — 2 формулы (на самом деле одна, но можно обойтись без матриц). Заливка треугольника хорошо гуглится, причем по шагам — простая, с z-буфером и двумя типами текстурирования. Код работает сразу же после переноса к себе (неудивительно, там малюсенькие функции, правда на Си).
Угу а потом еще исправить мерцание на ребрах, вылазящие пиксели из-за границы полигона и т.п. Да еще и баги отловить.
Часа мало. А вот дня-двух вполне достаточно: ничего чрезвычайно сложного там нет. А ты просто медленно кодишь :)
ну два дня - это я еще могу поверить. Но за день нормально разобраться в том, что же собсно ты пишешь, отлвить все баги/нюансы - это почти что нереально.
А ты просто медленно кодишь :)
наверное я предпочитаю сначала хорошенько разобраться :) Начинаю кодить только когад в голове уже конкретная структура программы и алгоритмов есть.
Если мне надо кодить, то я делаю за день ну страницу кода, от силы - две. Возможно, что это медленно. Но вышеотписавшийся вообще о практически нереальных сроках глаголит.