forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Полезные функции (http://forum.boolean.name/forumdisplay.php?f=17)
-   -   Стереорендер (анаглиф) на Blitz3D с использованием FastImage'а (http://forum.boolean.name/showthread.php?t=6388)

ABTOMAT 20.09.2008 22:12

Стереорендер (анаглиф) на Blitz3D с использованием FastImage'а
 
Вложений: 2
Вот сделал за пару часов.
Стереорежим в Блитзе без всяких драйверов!
Доставайте свои стереоочки

Собсно вот исходник AnaglyphStereoRenderUsingFastImage.zip - 2 Кб.

Используется либа товарища Вострикова "FastImage" - за что ему огромный респект.

Теперь к дѣлу.

Порядок использования.

1. В проекте должен быть подключен FastImage.
То есть инклюднут "FastImage.bb" и рядом положена длл-ка "FastImage.dll"
Кроме того надо заюзать InitDraw.
2. Инклюдим "Anaglyph.bb"
3. Делаем InitAnaglyph() - после объявления граф. режима.
4. Вместо RenderWorld используем AnaglyphRender(rendercamera, stereobase#), параметры:
rendercamera - камера
stereobase# - расстояние между "глазами", находится экспериментально.
Если у вас есть какие-л. функции, зависящие от положения камеры (например, вы используете Ашадов - там надо обновлять воду) то открываем исходник и руками прописываем туда всё что надо сделать вместе с рендером с каждой позиции.
5. Доп. функции:
AnaglyphSetLeftColor ( R,G,B )
AnaglyphSetRightColor ( R,G,B )
Позвозяют установить цвет правого и левого очка соответственно.
При вызове InitAnaglyph автоматом выставляется стандартное синее и красное очко, менять не надо если только у вас очки не какого-л. другого цвета (например, бывает делают жёлто-синие), с параметрами, я думаю, понятно.

Кроме того.
У функции AnaglyphRender есть доп. параметр StartDrawSwitch
Если вы используете эту функцию ВНУТРИ StartDraw и EndDraw то делать параметр 0, во всех иных случаях - 1 (по умолчанию - 1)

Вот, как и обещал, расово верные скриншоты:

Стереосортиры атакуют хDD


Стерео Кибер Санкт-Петербург



Залил файл непосредственно на форум.

ABTOMAT 21.09.2008 16:38

Ответ: Стереорендер (анаглиф) на Blitz3D с использованием FastImage'а
 
Демо на ifolder'е

http://ifolder.ru/8228036

genroelgvozo 21.09.2008 18:35

Ответ: Стереорендер (анаглиф) на Blitz3D с использованием FastImage'а
 
Плиз залей на ifolder

Stalnoy_Gvozd' 21.09.2008 19:59

Ответ: Стереорендер (анаглиф) на Blitz3D с использованием FastImage'а
 
Ха! Очки наготове!:-)
раньше конечно видел, но всеравно интересно
Сильно как-то давит на скринах показалось, ну да поди подогнать можно.:)

ABTOMAT 21.09.2008 20:29

Ответ: Стереорендер (анаглиф) на Blitz3D с использованием FastImage'а
 
genroelgvozo
залил
Stalnoy_Gvozd'
на скринах Джипег убил стерео =(
Так что лучше демку посмотри :)

Phantom 22.09.2008 08:00

Ответ: Стереорендер (анаглиф) на Blitz3D с использованием FastImage'а
 
Ух, ёлки. Сколько это Демо весит...

genroelgvozo 23.09.2008 09:19

Ответ: Стереорендер (анаглиф) на Blitz3D с использованием FastImage'а
 
плиз залей библу на ifolder тоже

ABTOMAT 23.09.2008 13:13

Ответ: Стереорендер (анаглиф) на Blitz3D с использованием FastImage'а
 
Библы - вот: www.fastlibs.com
Конкретно Фаст Имейдж - вот: http://www.fastlibs.com/libraries.php#fastimage
Выкладывать куда-то не стану, всё-таки это комм. либа нашего соотечественника, неприлично. Была бы буржуйская - давно бы выложил.

genroelgvozo 23.09.2008 18:16

Ответ: Стереорендер (анаглиф) на Blitz3D с использованием FastImage'а
 
Блин извини я имел ввиду твой исходник
В демо его не было
я просто с рапида не могу скачать

zheland 23.09.2008 20:34

Ответ: Стереорендер (анаглиф) на Blitz3D с использованием FastImage'а
 
Спасибо!
Не зря только-что перерыл кучу книг:
нашёл очки: ещё такого не видел: Буду знать.
Сейчас посмотрю исходники и постораюсь понять как это сделать без сторонних либ на DirectX.

ABTOMAT 23.09.2008 20:55

Ответ: Стереорендер (анаглиф) на Blitz3D с использованием FastImage'а
 
drunnik, сторонняя либа мне нужна была только потому что в Блитзе убогое 2Д-рисование, а так на ДХе конечно можно сделать.
genroelgvozo, я тут переделал примерчик на более качественный, как доведу до ума - залью.

zheland 23.09.2008 21:06

Ответ: Стереорендер (анаглиф) на Blitz3D с использованием FastImage'а
 
Кстати алгоритм можешь сказать?
Просто на Blitz3d 3 года назад программировал: уже его забыл
(на BlitzMax'е год назад, а FastImage вообще не знаю :) )

ABTOMAT 23.09.2008 21:18

Ответ: Стереорендер (анаглиф) на Blitz3D с использованием FastImage'а
 
Рендерим с двух глаз.
Левый - красим в цвет 255,0,0
Правый - 0,255,255

потом в бэкбуфер кладём один с блендом "обычный", второй - поверх него с блендом "аддитивный"

Tadeus 23.09.2008 21:20

Ответ: Стереорендер (анаглиф) на Blitz3D с использованием FastImage'а
 
Цитата:

Сообщение от ABTOMAT (Сообщение 86740)
Рендерим с двух глаз.
Левый - красим в цвет 255,0,0
Правый - 0,255,255

Наоборот

ABTOMAT 23.09.2008 21:41

Ответ: Стереорендер (анаглиф) на Blitz3D с использованием FastImage'а
 
А вдруг юзер случайно очки задом-наперёд напялит?

zheland 23.09.2008 22:11

Ответ: Стереорендер (анаглиф) на Blitz3D с использованием FastImage'а
 
1)А глаза смотрят ровно вперёд или где-то сходятся?(||,/\)
2)Правильно?:
объект = 64,140,201
правый глаз = 64,0,0
левый глаз = 0,140,201
(почему правый только R, а левый G и B?)
3)Я подумал как-бы это выглядело ну например в Crysis?

Tadeus 23.09.2008 23:03

Ответ: Стереорендер (анаглиф) на Blitz3D с использованием FastImage'а
 
Линии взгляда пересекаются. Поэтому, наоборот. Слева берется зеленая и синяя составляющая, а справа - красная.

ABTOMAT 23.09.2008 23:11

Ответ: Стереорендер (анаглиф) на Blitz3D с использованием FastImage'а
 
1. У меня в демке параллельно ,вродь стерео работает как нада
2. AnaglyphSetLeftColor 255,0,0
AnaglyphSetRightColor 0,255,255
Вот верные цвета, Тедей, не путай больше)
Насчёт почему такие цвета - потому что вот оно как:
Чтобы увидеть стерео - каждому глазу надо давать каждому свою картинку с разных ракурсов.
В анаглифе это сделано так:
в анаглиф-картинке
красный канал - для одного глаза
синий и зелёный - для другого

когда смотришь через очки - красный светофильтр пускает только красный канал, а циановый фильтр - только синий и зелёный, таким образом правый глаз видит только "свою" картинку, а левый - "свою".

3. Ставь Висту и дрова стерео под неё. Только вот Крайзис и так тормозит будь здоров, а ещё под Вистой, ещё и Стерео... Я не думаю что стоит из-за этого ставить Висту

Tadeus 24.09.2008 15:14

Ответ: Стереорендер (анаглиф) на Blitz3D с использованием FastImage'а
 
Вложений: 1
Не-не-не. Именно так

Вот скрин. Правдо, анаглифа здесь ваще не видно

И еще кусок из твоей либы:

AnaglyphSetLeftColor 0,255,255
AnaglyphSetRightColor 255,0,0

По крайней мере у меня такой. И эффект есть ;)

Хотя щя посмотрел. Вроде как у тя прально. А в скрине из демки нвидиа оно вообще по-разному О_о

ABTOMAT 24.09.2008 15:36

Ответ: Стереорендер (анаглиф) на Blitz3D с использованием FastImage'а
 
Там було перепутано, я исправлял - обнови с первого поста.

genroelgvozo 24.09.2008 17:47

Ответ: Стереорендер (анаглиф) на Blitz3D с использованием FastImage'а
 
Про параллельность по разному:
Если на камеры рендерить с перспективой то нужро параллельно
если только проекция то с пересечением куда падает фокус

zheland 24.09.2008 19:24

Ответ: Стереорендер (анаглиф) на Blitz3D с использованием FastImage'а
 
Цитата:

genroelgvozo, я тут переделал примерчик на более качественный, как доведу до ума - залью.
А скоро будет: просто мне понравилось.
надо побольше света: в тени очень плохое стерео.

impersonalis 08.04.2009 19:57

Ответ: Стереорендер (анаглиф) на Blitz3D с использованием FastImage'а
 
Круть, только:
Код:

i = 8
        Repeat
                i = i+1
                If GraphicsWidth() <= 2^i
                        TexW = 2^i
                        Exit
                End If
        Forever       
        i = 8
        Repeat
                i = i+1
                If GraphicsHeight() <= 2^i
                        TexH = 2^i
                        Exit
                End If
        Forever

логичнее заменить на:
Код:

Local LOG2Den#=1/Log(2)
TexW=2^Ceil(Log(GraphicsWidth())*LOG2Den)
TexH=2^Ceil(Log(GraphicsHeight())*LOG2Den)


ABTOMAT 08.04.2009 19:58

Ответ: Стереорендер (анаглиф) на Blitz3D с использованием FastImage'а
 
Маленький был, глупый... :dontknow:

impersonalis 08.04.2009 20:01

Ответ: Стереорендер (анаглиф) на Blitz3D с использованием FastImage'а
 
самокритичность- это хорошо, но я не для того, чтобы покзать чью-то некомпетентность это напостил =)

SKOFILD 17.10.2009 13:10

Ответ: Стереорендер (анаглиф) на Blitz3D с использованием FastImage'а
 
АВТОМАТ, а можеш еше StereoDemo.zip перезалить?

ABTOMAT 17.10.2009 16:24

Ответ: Стереорендер (анаглиф) на Blitz3D с использованием FastImage'а
 
Ссылка в первом посте обновлена

SKOFILD 18.10.2009 12:50

Ответ: Стереорендер (анаглиф) на Blitz3D с использованием FastImage'а
 
АВТОМАТ, а можеш еше StereoDemo.zip перезалить?

ABTOMAT 18.10.2009 13:58

Ответ: Стереорендер (анаглиф) на Blitz3D с использованием FastImage'а
 
ifolder'овская ссылка работает, сейчас проверил. А дохлые уберу чтоб глаза не мозолили
http://ifolder.ru/8228036

Render 30.01.2010 23:37

Ответ: Стереорендер (анаглиф) на Blitz3D с использованием FastImage'а
 
http://forum.ladoshki.com/viewtopic.php?p=15812620
Вот бы такого эффекта добится )

kreng 15.02.2011 20:23

Ответ: Стереорендер (анаглиф) на Blitz3D с использованием FastImage'а
 
Не знаю, прочитает ли это автор темы, но спасибо ему за скрипт. Очень помогло сэкономить время на реализацию. От себя докрутил фокусировку виртуальных глаз в одной точке. На мой взгляд, эффект объема значительно усилился. Вот такой вот объемчик вышел: http://disk.tom.ru/gdqksrv джипег убил часть трехмерности. Очки надевать синим на левый глаз)


Часовой пояс GMT +4, время: 10:31.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot