Размытие...
НароД, неподскажите как сделать размытие как во многих играх, например когда едеш на мошине (NFS) или когда прыаеш с парашута (B.A.S.E. Jumping) и т.д.
Вообщем хочу создать размытие, хоть какое, лишбы было, подскажите плиз...:SOS: |
Ответ: Размытие...
Коротко. Эфект добивается путём смешивания текущего и предадущего кадров. Помещаеш перед камерой квад. Создаеш текстуру. Делаем рендер в текстуру. Натягиваеш эту текстуру на квад. Немного смещаеш его. Получаем размытия.
+ http://forum.boolean.name/showthread.php?t=4186 http://forum.boolean.name/showthread.php?t=3486 http://www.justgoogleit.ru/ |
Re: Ответ: Размытие...
Цитата:
http://forum.boolean.name/showthread.php?t=4186 Не ф тему, там совсем нето: http://forum.boolean.name/showthread.php?t=3486 Я пробовал, небойсо) http://www.justgoogleit.ru/ |
Ответ: Размытие...
Цитата:
Цитата:
Цитата:
|
Ответ: Размытие...
Страница-то устарела, но много ума не надо, чтобы найти эту же статью в новом домене журнала Blitz et cetera
http://www.blitzetcetera.org/index.p...B5%D0%BD%D0%B8 |
Ответ: Размытие...
JeSss,размытие = блур.гугл в помощь.и blitz et cetera тоже;)
|
Ответ: Размытие...
Цитата:
|
Re: Ответ: Размытие...
Цитата:
|
Ответ: Размытие...
Значит не так "присвоил"...
|
Re: Размытие...
ну тада я хз в чём там проблема((((((
|
Ответ: Размытие...
Если руки хоть приблизительно из нужного места ростут, то "присвоить" можно :-)
Код в студию! |
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 |
Re: Размытие...
Сори за тупой цвет, оно само так)
|
Ответ: Размытие...
Цитата:
Юзай тег [ code] [ /code] Ну есть у тебя ф-ция createblurlayer. А ты её вызываеш? |
Re: Размытие...
Кста, этот код пока пробный, я потом начну новый код писать, уже совсем другую игру, но постараюсь разобраться)
|
Часовой пояс GMT +4, время: 03:28. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot