|
3D-программирование Вопросы, касающиеся программирования 3D мира |
17.11.2007, 21:02
|
#1
|
Нуждающийся
Регистрация: 02.11.2007
Сообщений: 93
Написано 0 полезных сообщений (для 0 пользователей)
|
Скриншот в игре
Сразу не пинать, про SaveBuffer(FrontBuffer(), "pic.bmp") я знаю. Так вот. Как реализовать вот что:
1)делается скриншот экрана
2)он сохраняется сразу в текстуру размером 512х256, т.е. чтобы физически файл с ней не создавался, а как при createTexture
3)эта текстура натягивается на меш
Я с CreateTexture и буферами пробовал повозиться, но довозился только до того, что текст перестал отображаться на экране, зато на этом меше на черном фоне его видно.
|
(Offline)
|
|
17.11.2007, 21:24
|
#2
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Re: Скриншот в игре
редериш мир в тексу.
тексу натягиваеш, и наслаждаешся. по порядку:
CameraViewport cam,0,0,512,256
RenderWorld
CopyRect 0,0,512,256,0,0,BackBuffer(),TextureBuffer(MyLikes tTex)
entitytexture myLikestMesh,myLikestTex
в чем проблема то?
Да, текса должна быть с флагом 256, а то узнаеш что есть великие тормоза.
|
(Offline)
|
|
17.11.2007, 22:00
|
#3
|
Нуждающийся
Регистрация: 02.11.2007
Сообщений: 93
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Скриншот в игре
А то что ты мне написал - это не особо тормознуто?
Я сделал так:
EKt=CreateTexture (512,256,256);создаем текстуру
MoveEntity cam,0,5,0;перемещаем камеру, чтобы все было видно
CameraViewport cam,0,0,512,256;устанавливаем размер камеры
RenderWorld;рендерим мир
CopyRect 0,0,512,256,0,0,BackBuffer(),TextureBuffer(EKt);копируем в тексу скрин
EntityTexture EK,EKt;лепим на экран
MoveEntity cam,0,-5,0;возвращаем камеру на место
CameraViewport CAM,0,0,800,600;нормальный размер камеры
|
(Offline)
|
|
17.11.2007, 22:28
|
#4
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Re: Скриншот в игре
поставишь флаг 256 будет наиболее быстрым родным способом блица.
быстрее - олько рендер непосредственно в текстуру (Ашадоу или другие надстройки)
|
(Offline)
|
|
17.11.2007, 22:39
|
#5
|
Нуждающийся
Регистрация: 02.11.2007
Сообщений: 93
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Скриншот в игре
EKt=CreateTexture (512,256,256) - так ведь надо здесь этот флаг ставить?
|
(Offline)
|
|
17.11.2007, 22:52
|
#6
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Re: Скриншот в игре
ЭЭЭ. ты каждый кадр создаеш тексу?
почему не рендериш мир в нее?
|
(Offline)
|
|
17.11.2007, 23:10
|
#7
|
Нуждающийся
Регистрация: 02.11.2007
Сообщений: 93
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Скриншот в игре
Сообщение от HolyDel
ЭЭЭ. ты каждый кадр создаеш тексу?
почему не рендериш мир в нее?
|
Теперь я CreateTexture поставил вне цикла. Т.е. она один раз только создается. У меня эта картинка создается один раз в 10 секунд.
P.S. А учитывая, что флаг стоит 256, то FreeTexture делать не надо?
|
(Offline)
|
|
17.11.2007, 23:26
|
#8
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Re: Скриншот в игре
EKt=CreateTexture (512,256,256)
игровой_цикл
CameraViewport cam,0,0,512,256
RenderWorld
CopyRect 0,0,512,256,0,0,BackBuffer(),TextureBuffer(EKt);
EntityTexture EK,EKt
CameraViewport cam,0,0,800,600
RenderWorld
конец_игрвоого_цикла
|
(Offline)
|
|
17.11.2007, 23:28
|
#9
|
Нуждающийся
Регистрация: 02.11.2007
Сообщений: 93
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Скриншот в игре
Так я и сделал. Спасибо!
|
(Offline)
|
|
24.12.2007, 01:34
|
#10
|
Модератор
Регистрация: 21.12.2006
Сообщений: 564
Написано 79 полезных сообщений (для 203 пользователей)
|
Re: Скриншот в игре
у меня при команде
If KeyDown(62) SaveBuffer(FrontBuffer(), "img.bmp")
создается черная бмпшка(
|
(Offline)
|
|
24.12.2007, 01:58
|
#11
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Re: Скриншот в игре
dector, а ты в каком месте ету команду вызываеш?
надо перед flip.
|
(Offline)
|
|
24.12.2007, 02:26
|
#12
|
Модератор
Регистрация: 21.12.2006
Сообщений: 564
Написано 79 полезных сообщений (для 203 пользователей)
|
Re: Скриншот в игре
мня... опять сплошил я.
спасибо. щас на стенке запишу - "Работа с графикой и текстом - перед Flip()"
Сделал. заценил. Понравилось! Теперь можно скрины штамповать. Жаль незачем(
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 06:44.
|