forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Размытие... (http://forum.boolean.name/showthread.php?t=5619)

JeSss 20.01.2008 22:49

Размытие...
 
НароД, неподскажите как сделать размытие как во многих играх, например когда едеш на мошине (NFS) или когда прыаеш с парашута (B.A.S.E. Jumping) и т.д.
Вообщем хочу создать размытие, хоть какое, лишбы было, подскажите плиз...:SOS:

Raiter 20.01.2008 22:54

Ответ: Размытие...
 
Коротко. Эфект добивается путём смешивания текущего и предадущего кадров. Помещаеш перед камерой квад. Создаеш текстуру. Делаем рендер в текстуру. Натягиваеш эту текстуру на квад. Немного смещаеш его. Получаем размытия.

+
http://forum.boolean.name/showthread.php?t=4186
http://forum.boolean.name/showthread.php?t=3486
http://www.justgoogleit.ru/

JeSss 20.01.2008 23:09

Re: Ответ: Размытие...
 
Страница устарела:
http://forum.boolean.name/showthread.php?t=4186
Не ф тему, там совсем нето:
http://forum.boolean.name/showthread.php?t=3486
Я пробовал, небойсо)
http://www.justgoogleit.ru/

Raiter 20.01.2008 23:11

Ответ: Размытие...
 
Цитата:

Страница устарела
Ничего не устрало там. А если не можеш пройти по ссылке, то пролистай несколько страниц назад раздел "3д программирование" и найдёш.

Цитата:

Не ф тему, там совсем нето
Это я сразу ответ кинул на твой следующий вопрос: "как отрендерить в текстуру?".

Цитата:

Я пробовал, небойсо)
Не похоже :) Ибо об этом говорили много....

alcoSHoLiK 20.01.2008 23:15

Ответ: Размытие...
 
Страница-то устарела, но много ума не надо, чтобы найти эту же статью в новом домене журнала Blitz et cetera
http://www.blitzetcetera.org/index.p...B5%D0%BD%D0%B8

DarkKnight 20.01.2008 23:17

Ответ: Размытие...
 
JeSss,размытие = блур.гугл в помощь.и blitz et cetera тоже;)

Raiter 20.01.2008 23:18

Ответ: Размытие...
 
Цитата:

Страница-то устарела, но много ума не надо, чтобы найти эту же статью в новом домене журнала Blitz et cetera
А я думал, что он про тему на форуме ( http://forum.boolean.name/showthread.php?t=4186 ) говорит :)

JeSss 20.01.2008 23:31

Re: Ответ: Размытие...
 
Цитата:

Сообщение от alcoSHoLiK (Сообщение 75086)

Я взял от туда создание Эфекта размытия и его обновления, присвоил к своей игре, и ничё...(

Raiter 20.01.2008 23:42

Ответ: Размытие...
 
Значит не так "присвоил"...

JeSss 20.01.2008 23:43

Re: Размытие...
 
ну тада я хз в чём там проблема((((((

Raiter 20.01.2008 23:44

Ответ: Размытие...
 
Если руки хоть приблизительно из нужного места ростут, то "присвоить" можно :-)

Код в студию!

JeSss 20.01.2008 23:47

Re: Размытие...
 
Мой?

;RPG Hax
Const texsize=1024,fx=7,o=-1
Graphics3D 800,600,32,2
SetBuffer BackBuffer()
Type TPlayer
Field ent
Field piv
Field go
End Type
Global
campiv=CreatePivot()
PositionEntity campiv,0,300,0
Global cam=CreateCamera(campiv)
RotateEntity CreateLight(),45,0,0
TurnEntity cam,45,0,0
CameraRange cam ,1,10000


plane=CreatePlane()
EntityPickMode plane,2
planetex=CreatePlaneTexture()
ScaleTexture planetex,100,100
EntityTexture plane,planetex
Global Player.TPlayer=CreatePlayer()
Repeat
If MouseDown
(1) Then
pick=CameraPick(cam,MouseX(),MouseY())
If pick=plane Then
PositionEntity
Player\piv,PickedX(),20,PickedZ()
Player\go=True
EndIf
EndIf
UpdatePlayer(Player)
CameraUpdate()
RenderWorld
Flip
Until KeyDown
(1)

Function createblurlayer(cam,z#,ang#,mgn#,bright#,alpha#,bmode,ord)
Local xres=GraphicsWidth()
Local yres=GraphicsHeight()
layer=CreateMesh(cam)
s=CreateSurface(layer)
;Вычисление координат текстуры
vx#=1.0*xres/texsize
vy
#=1.0*yres/texsize
AddVertex s,-1,-1,0,0,0
AddVertex s,1,-1,0,vx#,0
AddVertex s,-1,1,0,0,vy#
AddVertex s,1,1,0,vx#,vy#
AddTriangle s,0,1,2
AddTriangle s,3,2,1
;Определение величин для установки прямоугольника прямо перед камерой путем
; вычисления экранных координат точки трехмерного мира
PositionEntity layer,1,1,z#
CameraProject cam,EntityX(layer,True),EntityY(layer,True),EntityZ(layer,True)
rx#=ProjectedX#()-.5*xres
ry
#=ProjectedY#()-.5*yres
;Масштабирование слоя
ScaleMesh layer,.5*xres/rx#,.5*yres/ry#,1
;Сдлвиг прямоугольника на полпиксела влево-вверх, чтобы он был в центре экрана
PositionEntity layer,-.5/rx#,-.5/ry#,z#
RotateEntity layer,0,0,ang#
;Задание эффектов слоя
ScaleEntity layer,mgn#,mgn#,mgn#
EntityAlpha layer,alpha#
EntityBlend layer,bmode
col
=255*bright#
EntityColor layer,col,col,col
EntityFX layer,1
EntityOrder layer,ord
Return layer
End Function

Function
CreatePlaneTexture()
Local tex=CreateTexture(128,128)
Local buff=GraphicsBuffer()
SetBuffer TextureBuffer(tex)
Color 66,122,185
Rect 0,0,64,64
Rect 64,64,128,128
Color 183,234,247
Rect 64,0,128,64
Rect 0,64,64,128
SetBuffer buff
Return tex
End Function
Function
CreatePlayer.TPlayer()
p.TPlayer=New TPlayer

p
\ent=CreateCone()
RotateMesh p\ent,90,0,0
ScaleEntity p\ent,20,20,20
TranslateEntity p\ent,0,20,200
EntityColor p\ent,167,121,168
p\piv=CreatePivot()

Return p
End Function
Function
CameraUpdate()
Local sp
If KeyDown(42) Then sp=3 Else sp=1
If KeyDown(17) Then MoveEntity campiv,0,0,sp
If KeyDown(31) Then MoveEntity campiv,0,0,-sp
If KeyDown(30) Then MoveEntity campiv,-sp,0,0
If KeyDown(32) Then MoveEntity campiv,sp,0,0
End Function
Function
UpdatePlayer(p.TPlayer)
If Not p\go Then Return
PointToEntity(p\ent,p\piv,0.05)
MoveEntity p\ent,0,0,1
If EntityDistance(p\ent,p\piv)<6 Then p\go=False
End Function
Function
PointToEntity( src, dest, softness# )
; вычисляем компоненты вектора между обьектами
Local dx# = EntityX( src ) - EntityX( dest )
Local dy# = EntityY( src ) - EntityY( dest )
Local dz# = EntityZ( src ) - EntityZ( dest )
; ориентируем обьект по вектору
AlignToVector( src, -dx, -dy, -dz, 0, softness )
End Function
Function
updateblurlayer(layer,tex)
If tex=0 Then tex=CreateTexture(texsize,texsize)
EntityTexture layer,tex
CopyRect 0,0,GraphicsWidth(),GraphicsHeight(),0,0,BackBuffer(),TextureBuffer(tex)
Return tex
End Function

JeSss 20.01.2008 23:47

Re: Размытие...
 
Сори за тупой цвет, оно само так)

Raiter 20.01.2008 23:48

Ответ: Размытие...
 
Цитата:

Мой?
Нет мой!

Юзай тег [ code] [ /code]

Ну есть у тебя ф-ция createblurlayer. А ты её вызываеш?

JeSss 20.01.2008 23:50

Re: Размытие...
 
Кста, этот код пока пробный, я потом начну новый код писать, уже совсем другую игру, но постараюсь разобраться)


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

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