|
3D-программирование Вопросы, касающиеся программирования 3D мира |
16.03.2009, 03:46
|
#1
|
Оператор ЭВМ
Регистрация: 01.03.2009
Сообщений: 28
Написано одно полезное сообщение
|
Черно-белое
Извеняюсь если было уже можно как-нибудь сделать изображение черно-белым (нужно для паузы)??
__________________
СКАЖИ
МИРУ
Ы
|
(Offline)
|
|
16.03.2009, 08:36
|
#2
|
Проектировщик
Регистрация: 25.03.2007
Сообщений: 536
Написано 252 полезных сообщений (для 715 пользователей)
|
Ответ: Черно-белое
Возможно я ошибаюсь, но кажись это можно сделать с помощью команды SetGamma
|
(Offline)
|
|
16.03.2009, 14:49
|
#3
|
злобный флудер
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений (для 1,476 пользователей)
|
Ответ: Черно-белое
этого ненадо делать с помощью SetGamma потомучто команда гавно и неработает
надо сделать перед камерой куб (чайлд) альфу ему поставить 0 и цвет серый, когда надо альфу ставим на 0.5
|
(Offline)
|
|
16.03.2009, 14:57
|
#4
|
Blitz's Shame !!
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений (для 2,013 пользователей)
|
Ответ: Черно-белое
надо сделать перед камерой куб (чайлд) альфу ему поставить 0 и цвет серый, когда надо альфу ставим на 0.5
|
ты уверен что быдет ЧБ ??
если уж так то можно взять картинку в последный момент перед паузой и перерисовать ее в ЧБ любым простым алгоритмом !! потом можно натянуть как текстуру на квад перед камерой !!
хотя конечно хз... "паузы" бывают разные !!
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
16.03.2009, 15:18
|
#5
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Черно-белое
вот были бы шейдеры, можно было бы сделать честное ЧБ, а так, dot3 вам в помощь. будет что то похожее.
|
(Offline)
|
|
16.03.2009, 16:25
|
#6
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Черно-белое
Если для паузы - можно скопировать буфер экрана в картинку, программно в ней все пиксели сделать чёрно-белыми и отрисовать на экран.
Я в своё время это делал, работало, но на процесс чтение из картинки+зачёрнобеливание+запись в bmp при разрешении 1280*1024 уходило секунды 4. Может, исходники поищу. Так что тут быстро не получится.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
16.03.2009, 19:11
|
#7
|
Оператор ЭВМ
Регистрация: 01.03.2009
Сообщений: 28
Написано одно полезное сообщение
|
Ответ: Черно-белое
Я так и думал, что весь буфер копировать, ладно спс, я лучше придумаю что-нибудь пооригинальнее для паузы.
__________________
СКАЖИ
МИРУ
Ы
|
(Offline)
|
|
16.03.2009, 19:36
|
#8
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Черно-белое
Ну я не говорил что этот способ единственный, просто на FFP так или иначе получится через жопу. Шейдерами - быстро и просто (даже я делал), но чего нема, того нема
З.Ы. Блюр бы подошёл для паузы.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
16.03.2009, 19:38
|
#9
|
Оператор ЭВМ
Регистрация: 01.03.2009
Сообщений: 28
Написано одно полезное сообщение
|
Ответ: Черно-белое
Я блюром и сделал, в ашадов всего одной командой ))
__________________
СКАЖИ
МИРУ
Ы
|
(Offline)
|
|
16.03.2009, 21:19
|
#10
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Черно-белое
я имел ввиду что то вроде этого:
Graphics3D 640,480,32,2
For i = 1 To 100
c = CreateCube()
PositionEntity c,Rnd(-100,100),Rnd(-100,100),Rnd(0,200)
EntityColor c,Rnd(0,255),Rnd(0,255),Rnd(0,255)
RotateEntity c,Rnd(0,360),Rnd(0,360),Rnd(0,360)
ScaleEntity c,Rnd(1,10),Rnd(1,10),Rnd(1,10)
Next
For i = 1 To 100
c = CreateSphere()
PositionEntity c,Rnd(-100,100),Rnd(-100,100),Rnd(0,200)
EntityColor c,Rnd(0,255),Rnd(0,255),Rnd(0,255)
RotateEntity c,Rnd(0,360),Rnd(0,360),Rnd(0,360)
ScaleEntity c,Rnd(1,10),Rnd(1,10),Rnd(1,10)
Next
cam = CreateCamera()
l = CreateLight()
tex = CreateTexture(1024,512,1+256+512)
TextureBlend tex,4
ScaleTexture tex, 1024.0/GraphicsWidth(),512.0/GraphicsHeight()
spr = CreateSprite(cam)
PositionEntity spr, 0,0,1.3333333333333333
ScaleSprite spr, GraphicsWidth()/Float(GraphicsHeight()),1
EntityTexture spr,tex
HideEntity spr
While Not KeyDown(1)
If KeyDown(203) Then TurnEntity cam,0,-1,0
If KeyDown(205) Then TurnEntity cam,0,1,0
If KeyDown(208) Then TurnEntity cam,-1,0,0
If KeyDown(200) Then TurnEntity cam,1,0,0
RenderWorld
If KeyDown(25)
paused = 1
; Viewport(0,0,256,256)
CopyRect(0,0,640,480,0,0,BackBuffer(),TextureBuffer(tex))
ShowEntity spr
; Viewport(0,0,640,480)
EndIf
While KeyDown(25) : Delay(1) : Wend
While paused
RenderWorld
Flip
If KeyDown(25)
HideEntity spr
paused = 0
While KeyDown(25) : Delay(1) : Wend
EndIf
Wend
Flip
Wend
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо HolyDel за это полезное сообщение:
|
|
16.03.2009, 21:22
|
#11
|
Оператор ЭВМ
Регистрация: 01.03.2009
Сообщений: 28
Написано одно полезное сообщение
|
Ответ: Черно-белое
Неплохо, только долговато)
__________________
СКАЖИ
МИРУ
Ы
|
(Offline)
|
|
16.03.2009, 21:25
|
#12
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Черно-белое
я хз. на блице давно ничего не писал. но вроде все должно быть аппаратно. эксперты, поправьте если не так.
upd на моей машине копирование с бакбуффера в текстуру занимает меньше миллисекунды.
Последний раз редактировалось HolyDel, 16.03.2009 в 21:33.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 05:36.
|