forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Как сделать DOT эфект (http://forum.boolean.name/showthread.php?t=8999)

Petrofan 25.08.2009 16:21

Как сделать DOT эфект
 
Очень нужен простой применчик этого эфекта или антилизигна занание спасибо.

Nex 25.08.2009 16:23

Ответ: Как сделать DOT эфект
 
Вообще вот.
А вообще если я не ошибаюсь, то это можно только на Ксерсе сделать...

Petrofan 25.08.2009 16:34

Ответ: Как сделать DOT эфект
 
Может я чет непонимаю но мне нужен эфект размытия но только не блур а другой.

NitE 25.08.2009 16:36

Ответ: Как сделать DOT эфект
 
вообще,вообще,ксерс !
DOT в блице тока эмулированный (УГ)
в ксорсе настоящий шейдерный ДОТ, и антиалиазинг одной командой.
Цитата:

Может я чет непонимаю но мне нужен эфект размытия но только не блур а другой.
помощь уже выехала

Nex 25.08.2009 16:43

Ответ: Как сделать DOT эфект
 
Э... А я думал только Блур. Просвятите меня плиз.

Mr_F_ 25.08.2009 16:47

Ответ: Как сделать DOT эфект
 
автор сабжа давай ка в гугл за расшифровкой терминов

Knightmare 25.08.2009 16:54

Ответ: Как сделать DOT эфект
 
Мои телепатические способности подсказывают что DOF нужен (судя что размытие, но не блум). На чистом блитзе - никак (в принципе сделать можно, но через жопу и тормозно), можно через FastExt, можно на Хорсе, но не с такими знаниями.

ABTOMAT 25.08.2009 17:19

Ответ: Как сделать DOT эфект
 
DOF есть в Ashadow: www.andreyman.ucoz.ru

tormoz 25.08.2009 18:59

Ответ: Как сделать DOT эфект
 
В FastExt в примере постпроцессов есть доф.
Только не нравицца он мне в принципе - картинку только портит.

Mr_F_ 25.08.2009 20:15

Ответ: Как сделать DOT эфект
 
его надо грамотно юзать
а щас стало модно так же как и блум (хдрный и не хдрный) пихать в нереальных дозах повсюду.

Knightmare 25.08.2009 21:20

Ответ: Как сделать DOT эфект
 
То как всеми юзается DOF напоминает мне то, как видит мир близорукий человек. У нормального человека резкость падает на очень большом расстоянии (а не на расстоянии вытянутой руки).

Mr_F_ 25.08.2009 21:56

Ответ: Как сделать DOT эфект
 
для придания кинематографичности стоит играться с дофом как это делают хорошие фотографы и операторы

частая ошибка симуляции дофа что его делают слишком близко и это начинает напоминать макросъёмку игрушечных объектов

в CoD4 он хорошо заюзан

moka 26.08.2009 01:18

Ответ: Как сделать DOT эфект
 
Проблемма в том что ДоФ много где реализован самым простым способом.
Классический сопособ: Две текстуры: первая (сам скриин); вторая (разблуренный скрин). И дептх карта используя которую просто блендяться две эти текстуры.
Более продвинуто, уже используют слои, как например было реалезовано в StarCraft II, но опять же, это не достаточно для более реальной кинематографичной картинки.
Теперь определимся, что есть цель для ДоФа, и что он из себя представляет: сам эффект вообще нереалестичен, и человеческий глаз видит совсем по иному, это не блур никакой, то что за точкой фокусировки и т.п. Только в линзах (фотики, камеры), реалезуется ДоФ эффект.
Поэтому нужно ровняться не на то как мы видим, а на кинематографические хорошие примеры. Короче говоря, ДоФ эффект хоть и завязан на зрении игрока, но никак не статически, тоесть его нельзя просто так двигать туда сюда и менять радиус, основываясь только от точки куда он смотрит. Заивисимость должна быть и от окружения, активных мест, и даже в красивых видах, должен использоваться он.
Далее сама блур текстура, она не везде должна быть размыта одинакого, а это зависит от фукусировки. Да и простой гауссиан блур тут для реалестичной кинематографичной картинки не прокатит, изучите внимательно как выглядит размытие, и на крайняк гляньте фильтры блура в фотошопе, заметьте разницу..
И главное: он не должен мешать геймплаю никак вообще, а то приходиться чтобы увидить что-то, "бороться" с ним, водить мышкой чтобы там он прояснился - тупизм.
Как подметил Мр Ф, в CoD4 он хорошо применён, мало, очень в тему, и абсолютно не назойливо!

CRASHER 26.08.2009 14:49

Ответ: Как сделать DOT эфект
 
Нашол вот тут посмотри может это.

Код:

; Depth of field
;
; Created by Mikkel Fredborg
; Use as you please!
;
Graphics3D 800,600,0,2
SetBuffer BackBuffer()

;
; Create a camera...
camera = CreateCamera()
CameraRange camera,0.1,1000.0
CameraFogMode camera,0
CameraFogRange camera,100,1000

;
; create some cubes
For i = 0 To 100
        cube = CreateCylinder()
        PositionEntity cube,Rnd(-100,100),Rnd(-100,20),Rnd(-100,100)
        RotateEntity cube,Rnd(-180,180),Rnd(-180,180),Rnd(-180,180)
        ScaleEntity cube,Rnd(1,10),Rnd(1,10),Rnd(1,10)
Next

;
; Light
light = CreateLight()
RotateEntity light,90,0,0

; Depth of Field setup
Type DepthOfField
        Field layers
        Field layer[999]
        Field texture
        Field tsize
        Field tbuffer
        Field near#,far#
        Field camera
End Type

dof.DepthOfField = DOF_Create(camera,100,6)

Repeat
        RotateEntity camera,MouseY(),-MouseX(),0
        MoveEntity camera,KeyDown(205)-KeyDown(203),0,KeyDown(200)-KeyDown(208)

        DOF_Update(dof)
       
        RenderWorld
       
        Flip False

Until KeyHit(1)

End

Function DOF_Update(dof.depthoffield)

        HideEntity dof\layer[0]

        CameraRange dof\camera,dof\near*0.95,1000
        CameraViewport dof\camera,0,0,dof\tsize,dof\tsize
        RenderWorld
        CopyRect 0,0,dof\tsize,dof\tsize,0,0,BackBuffer(),dof\tbuffer
       
        ShowEntity dof\layer[0]

        CameraRange dof\camera,0.1,1000       
        CameraViewport dof\camera,0,0,GraphicsWidth(),GraphicsHeight()
       
End Function

Function DOF_Create.DepthOfField(camera,layers,spread#=0.0)

        dof.depthoffield = New depthoffield

        dof\camera = camera

        dof\layers = layers

        dof\tsize        = 512
        dof\near        = 100.0
        dof\far                = 200.0
       
        ClearTextureFilters
        dof\texture = CreateTexture(dof\tsize,dof\tsize,1+256+16+32)
        dof\tbuffer = TextureBuffer(dof\texture)
       
        ang# = 360.0/Float(dof\layers)
        For i = 0 To dof\layers-60
                dof\layer[i] = CreateFace(1)
                       
                EntityAlpha dof\layer[i],1.0/Float(dof\layers)
                EntityFX        dof\layer[i],1+8
               
                ps# = dof\near+(i*((dof\far-dof\near)/Float(dof\layers)))
               
                px# = Sin(i*ang)*(i/Float(dof\layers))*spread
                py# = Cos(i*ang)*(i/Float(dof\layers))*spread
               
                PositionEntity dof\layer[i],px,py,ps
                ScaleEntity dof\layer[i],ps,ps,1.0               
               
                EntityTexture dof\layer[i],dof\texture
               
                If i = 0
                        EntityParent dof\layer[i],dof\camera,True
                Else
                        EntityParent dof\layer[i],dof\layer[i-1],True
                End If
        Next

        Return dof

End Function

Function CreateFace(segs=1,parent=0)

        mesh=CreateMesh( parent )
        surf=CreateSurface( mesh )
        stx#=-1.0
        sty#=stx
        stp#=Float(2)/Float(segs)
        y#=sty
        For a=0 To segs
                x#=stx
                v#=a/Float(segs)
                For b=0 To segs
                        u#=b/Float(segs)
                        AddVertex(surf,x,-y,0,u,v) ; swap these for a different start orientation
                        x=x+stp
                Next
                y=y+stp
        Next
        For a=0 To segs-1
                For b=0 To segs-1
                        v0=a*(segs+1)+b:v1=v0+1
                        v2=(a+1)*(segs+1)+b+1:v3=v2-1
                        AddTriangle( surf,v0,v2,v1 )
                        AddTriangle( surf,v0,v3,v2 )
                Next
        Next
       
        FlipMesh mesh
        UpdateNormals mesh

        Return mesh
       
End Function



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

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