Я создаю простой 3D-движок с использованием объекта HTML5 canvas.Это работает хорошо, но я хотел бы реализовать обработку красного / синего анаглифа, чтобы действительно можно было видеть 3D с помощью красных / синих очков.В данный момент у меня 3D-объект визуализируется дважды, во второй раз с положения камеры рядом с первым положением камеры.
Проблема, с которой я сталкиваюсь, состоит в том, как объединить два объекта, чтобы получить правильныйцвет для анаглифа.Теперь я использую globalAlpha = 0.5 и отрисовываю первое красным, а второе синим.Это, однако, не полностью работает, так как пиксели, на которые воздействует только красный объект, должны оставаться красными, но они становятся цветом между черным и красным, поскольку мой фоновый цвет черный.
При взгляде на 3D-анаглифСоздавая приложение, я заметил, что красный и синий пиксели вместе рассчитываются следующим образом:
255 0 0
0 0 255
------------- +
255 0 255
Однако на холсте HTML5 все пиксели рассчитываются с использованием альфы, поэтому, если цвет фона черный, красный пиксель становится темно-краснымпока он должен оставаться красным.По сути, мне нужно, чтобы пиксели красного объекта влияли только на красный компонент каждого пикселя, а пиксели синего объекта влияли только на синий компонент каждого пикселя.
Я мог бы работать на основе каждого пикселяно возможно ли это, а не снижение производительности?Я рендеринг 20 кадров в секунду, поэтому я думаю, что это не будет иметь никакого практического применения.Любые предложения будут оценены.
Я надеюсь, что это изображение проясняет все: