Во многих случаях удаление скрытой поверхности 3d означает, что когда вы рисуете поверхность, вы также запоминаете глубину каждого нарисованного пикселя (расстояние от «глаза»). Когда вы начинаете рисовать поверхность, на которой поверхность уже нарисована, вы рисуете пиксель, только если он ближе к глазу, чем пиксель, который уже существует. В библиотеке 3D-графики OpenGL (проецирует описания 3D-сцен на 2-мерный дисплей) это называется Тест буфера глубины .
Вы также можете отслеживать направление движения поверхности. Если он смотрит в сторону от «глаза», то не рисуйте его вообще. В OpenGL это вызов отбор задней стороны . Если вы хотите создать многослойный прозрачный вид, описанный в вашей статье, то вам нужно отсортировать пиксели по глубине и сначала нарисовать самые глубокие. Затем нарисуйте более близкие сверху, заменив текущий пиксель выпуклой комбинацией цвета старого пикселя и цвета текущей поверхности.
Для вашего случая 4d вам нужно решить, что значит проецировать вещь 4d. Я думаю, что любая 3d модель, которая тоже анимирована, на самом деле является 4d моделью. Вы можете, если хотите, нарисовать все кадры одновременно, как с этим симулятором ракетбола:
![4d racquetball player](https://i.stack.imgur.com/scffW.jpg)
На этом изображении время здесь представлено значением шкалы яркости. Таким образом, вы можете видеть, как игрок двигается по площадке и бьет по мячу, все в одном статическом изображении. Конечно, правильная проекция 4d на 2d, вероятно, не будет отображать кучу дискретных временных периодов, соединенных вместе, а скорее соединит вершины, которые соединяют время, так что вместо того, чтобы видеть кучу отдельных шариков, вы увидите «трубу». это представляет траекторию шара. Но подобное упомянуто в статье, на которую вы ссылаетесь, в некоторых случаях она может сообщать меньше.