climber
23:31 01-05-2024 3D оптические иллюзии
Типа той, что внизу.

Как такую нарисовать? Тут все просто: рисуем какую-нибудь сложную объемную фигуру, у которой при определенном ракурсе одна часть заслоняет другую. А потом, волюнтаристским движением руки, перерисовываем ту часть, что сзади, как будто на самом деле она заслоняет ту, что спереди, или как-то с ней соединяется.

Переходим к 3D модели, отображаеющейся на экране ЭВМ (компьютера, то есть).
Любое приложение строит такое изображение по точкам, трехмерные координаты которых содержатся в памяти.
Отображается любая фигура, соответственно, так, как реальную такую же фигуру увидел бы человек.

Собственно, идея: когда рассчитывается изображение, делаем следующее.
1. Рассчитываем экранные координаты частей проекции фигуры
2. Когда определенные части фигуры проецируются рядом друг с другом, для той части, что сзади, генерируем другие опорные точки, которые спроецируются ровно в ту же точку экрана, но истинные 3D координаты такие, что они будут заслонять собой часть, которая спереди.
3. Рендерим итоговое изображение, используя эти новые сгенерированные точки.
4. Итог - почти "честная" 3D фигура, которую можно как угодно крутить на экране, но при определенных поворотах она будет плавно превращаться в иллюзию.