C++
CGI
Programming
Working with 3D-graphics
Game development
Comments 31
+1
Мне довольно легко получается увидеть стереограмму, но у меня все шары впуклые, а не наоборот, как пишет автор, выпыклые, я вижу их как вырезанные в общем фоне. Но при этом картинка совершенна трехмерная. Это какая-то моя особенность? Или можно как то по другому посмотреть и увидеть ее выпуклой?
+1
Вы глаза скашиваете к носу, я правильно понимаю? Попробуйте вот тут убрать 1-, оставив только zbuffer[i] = (std::min(zbuffer[i],far)-minval)/(maxval-minval);
+2
Короче, мне в шесть утра думать лень, а сводить глаза я не умею, только разводить. Попробуйте посмотреть на эту картинку:

Скрытый текст



Если у вас она стала выпуклой в отличие от той, что в статье, просто вы смотрите cross-eyed, а у меня в статье картинка для wall-eyed.
+2
Да, пропустил про это отличие, понял, спасибо. Теперь выпуклые
+1
Качество рельефа поражает, сколько видел таких фото все очень плоские и плохо просматриваемые. А в этой объем передан идеально. Интересно, а анимации с такой графикой работать будут?
0
Подозреваю, прикол в мелких точках, в то время как большинство картин делаются с крупной мозаикой. Размер пикселя меньше :)
0
Да, анимировать можно без проблем, особенно если если исходную картинку использовать одну и ту же.
0
С анимациями все будет не так радужно.

Наши глаза не фокусируются на одной конкретной точке, но произвольно, по желанию, «нацеливаются» на близкие либо удаленные объекты. Соответственно, при рендеринге картинки мы выбираем точку «сведения» глаз:

image

Угол α больше угла β, соответственно при рендеринге с фокусировкой на девушке картинки для правого / левого глаза будут отличаться больше, чем при фокусировке на классной доске.

Не знаю, как это объяснить, но при просмотре 3D-фото фиксированный фокус, «вшитый» в картинку, не мешает её восприятию. А вот при просмотре стерео видео… ну, вы, наверное, не раз смотрели 3D-кино. Картинка неизбежно двоится в определенные моменты, а иногда, напротив, ощущения глубины недостает.

Хорошо, по-идее, 3D-видео должно работать в эпизодах, когда внимание зрителя чисто рефлекторно притягивает какой-то объект — например, летящая прямо в лицо граната. Тут уж глаза сами сфокусируются на нужном предмете.

Решение возможно — определять оптическую ось (не написал тут крамолы?) каждого глаза и «на лету» рендерить картинки с учетом «прицела» одного конкретного зрителя.

Но, очевидно, это уже за рамки статьи.
0
Я не очень согласен с вами. Мне кажется, что вы смешиваете слишком много в одну кучу. Я, сидя в партере театра, не всегда фокусирую взгляд на том месте, где хотел бы режиссёр. Слишком динамичные сцены сложны для восприятия даже в реальной жизни. Стереоизображения своими неидеальностями создают дополнительный стресс для зрительного аппарата; стереограммы большой, анаглиф меньше, поляризованные системы ещё меньше, но стресс не уходит полностью. Однако же этот стресс имеет мало общего с тем, о чём вы говорите. Фокусировка/расфокусировка каждого глаза отдельно играет существенно меньше роли, нежели рассинхронизация глаз, а она имеет место быть в обоих случаях, как в реальности, так и в виртуальности.
0
Да достаточно вспомнить тот самый magic carpet, что я процитировал в самом начале статьи :)
0
Спасибо. Жаль, похоже, они все на разведение глаз. Мне такие очень тяжело смотреть.
+1
Ваши уроки великолепны! Увы, я ушёл из графики, по крайней мере временно, не закончив свою engine. Как вам уроки Алекса Борескова?
+1
Я об этих статьях не знал, спасибо за ссылку, они отличные! Единственное, что в 21м веке я уже забыл, что кодировки бывают битыми. Как мне в хромиуме форсировать кодировку, не скачивать же документ локально на диск и рекодировать???
0
Спасибо за ссылку на плагин; а в какой момент вообще мы потеряли стандартную фичу всех браузеров? Почему теперь нужен плагин?
+1
Большое спасибо за интересную статью!!! Надо будет попробовать реализовать на практике
+3
Вот для «реализовать на практике» я это всё и пишу. Я насмотрелся на то, как у нас в университете (профильный факультет!) учат программированию: всю дорогу студенты пишут каталоги компакт-дисков да игрушечные системы резервации ресурсов (оффлайн, чуть ли не на дельфи).

Мне это надоело, и потому взялся за лекции по графике, так как при минимальном вложении (ни одна моя программа не превышает пятисот-шестисот строк) можно получить просто-напросто привлекательные результаты, а не пыльный код. Да, этот обучающий код точно так же пойдёт в помойку, но хоть в процессе может быть интересно :)
0
насмотрелся на то, как у нас в университете (профильный факультет!) учат программированию:

Да-да, полностью согласна! Спасибо! И Дельфи до сих пор жив в некоторых вузах
0
Во-первых, я не говорил, что дельфи плох; во-вторых, примеры хороших проектов не показывают ничего. Я могу такой трассировщик без особых проблем вообще на брейнфаке сделать. В-третьих, для обучения паскаль мне нравится, но вот только дельфи умер давным-давно, и поэтому обучать на нём сейчас студентов ни к чему, как мне кажется.
+2
Небольшой комментарий по анаглифу. Нежелательно передавать визуальную информацию в синем канале, так как у человеческого глаза очень низкая острота зрения на синий цвет. Колбочки, воспринимающие коротковолновое излучение, устроены иначе, и их доля среди клеток сетчатки намного меньше, чем «красных» и «зелёных», а в центральной ямке их нет совсем. Поэтому, например, очень плохо воспринимается жёлтый текст на белом фоне. Для анаглифа лучше подходит красный канал для одного глаза и зелёный для другого; зелёный фильтр, как правило, проницаем и для синего света.
image
Illustration of the distribution of cone cells in the fovea of a individual with normal color vision (left), and a color blind (protanopic) retina. Note that the center of the fovea holds very few blue-sensitive cones.
0
На самом деле, анаглифом лучше вообще не пользоваться, мой мозг страшно протестует против картинок разного цвета для разных глаз :)
0
Отчетливо виден на стереокартинке объем, но если приглядеться, все шары идут ступеньками, словно составлены из дисков, а на плоскости под шарами разглядеть не смог — все гладко.
+1
Это проблема того, что параллакс целочисленный в этой реализации. На плоскости под шарами увидеть сложно, т.к. площадь каждой ступеньки маленькая. С текущим разрешением картинки и межглазным расстоянием можно представить 35 разных слоёв глубины. Самый простой способ сгладить — сгенерировать картинку с гораздо большим разрешением (например, хотя бы *4), а затем просто её уменьшить назад, получите гладкие переходы глубины.
Only those users with full accounts are able to leave comments. , please.