|
3D-программирование Вопросы, касающиеся программирования 3D мира |
25.08.2009, 16:21
|
#1
|
ПроЭктировщик
Регистрация: 26.08.2008
Сообщений: 149
Написано 10 полезных сообщений (для 18 пользователей)
|
Как сделать DOT эфект
Очень нужен простой применчик этого эфекта или антилизигна занание спасибо.
|
(Offline)
|
|
25.08.2009, 16:23
|
#2
|
Гигант индустрии
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений (для 3,298 пользователей)
|
Ответ: Как сделать DOT эфект
Вообще вот.
А вообще если я не ошибаюсь, то это можно только на Ксерсе сделать...
|
(Offline)
|
|
25.08.2009, 16:34
|
#3
|
ПроЭктировщик
Регистрация: 26.08.2008
Сообщений: 149
Написано 10 полезных сообщений (для 18 пользователей)
|
Ответ: Как сделать DOT эфект
Может я чет непонимаю но мне нужен эфект размытия но только не блур а другой.
|
(Offline)
|
|
25.08.2009, 16:36
|
#4
|
злобный флудер
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений (для 1,476 пользователей)
|
Ответ: Как сделать DOT эфект
вообще,вообще,ксерс !
DOT в блице тока эмулированный (УГ)
в ксорсе настоящий шейдерный ДОТ, и антиалиазинг одной командой.
Может я чет непонимаю но мне нужен эфект размытия но только не блур а другой.
|
помощь уже выехала
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо NitE за это полезное сообщение:
|
|
25.08.2009, 16:43
|
#5
|
Гигант индустрии
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений (для 3,298 пользователей)
|
Ответ: Как сделать DOT эфект
Э... А я думал только Блур. Просвятите меня плиз.
|
(Offline)
|
|
25.08.2009, 16:47
|
#6
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: Как сделать DOT эфект
автор сабжа давай ка в гугл за расшифровкой терминов
|
(Offline)
|
|
25.08.2009, 16:54
|
#7
|
Дэвелопер
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений (для 2,920 пользователей)
|
Ответ: Как сделать DOT эфект
Мои телепатические способности подсказывают что DOF нужен (судя что размытие, но не блум). На чистом блитзе - никак (в принципе сделать можно, но через жопу и тормозно), можно через FastExt, можно на Хорсе, но не с такими знаниями.
|
(Offline)
|
|
25.08.2009, 17:19
|
#8
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Как сделать DOT эфект
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
25.08.2009, 18:59
|
#9
|
Гигант индустрии
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений (для 4,437 пользователей)
|
Ответ: Как сделать DOT эфект
В FastExt в примере постпроцессов есть доф.
Только не нравицца он мне в принципе - картинку только портит.
__________________
|
(Offline)
|
|
25.08.2009, 20:15
|
#10
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: Как сделать DOT эфект
его надо грамотно юзать
а щас стало модно так же как и блум (хдрный и не хдрный) пихать в нереальных дозах повсюду.
|
(Offline)
|
|
25.08.2009, 21:20
|
#11
|
Дэвелопер
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений (для 2,920 пользователей)
|
Ответ: Как сделать DOT эфект
То как всеми юзается DOF напоминает мне то, как видит мир близорукий человек. У нормального человека резкость падает на очень большом расстоянии (а не на расстоянии вытянутой руки).
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
25.08.2009, 21:56
|
#12
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: Как сделать DOT эфект
для придания кинематографичности стоит играться с дофом как это делают хорошие фотографы и операторы
частая ошибка симуляции дофа что его делают слишком близко и это начинает напоминать макросъёмку игрушечных объектов
в CoD4 он хорошо заюзан
|
(Offline)
|
|
26.08.2009, 01:18
|
#13
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Как сделать DOT эфект
Проблемма в том что ДоФ много где реализован самым простым способом.
Классический сопособ: Две текстуры: первая (сам скриин); вторая (разблуренный скрин). И дептх карта используя которую просто блендяться две эти текстуры.
Более продвинуто, уже используют слои, как например было реалезовано в StarCraft II, но опять же, это не достаточно для более реальной кинематографичной картинки.
Теперь определимся, что есть цель для ДоФа, и что он из себя представляет: сам эффект вообще нереалестичен, и человеческий глаз видит совсем по иному, это не блур никакой, то что за точкой фокусировки и т.п. Только в линзах (фотики, камеры), реалезуется ДоФ эффект.
Поэтому нужно ровняться не на то как мы видим, а на кинематографические хорошие примеры. Короче говоря, ДоФ эффект хоть и завязан на зрении игрока, но никак не статически, тоесть его нельзя просто так двигать туда сюда и менять радиус, основываясь только от точки куда он смотрит. Заивисимость должна быть и от окружения, активных мест, и даже в красивых видах, должен использоваться он.
Далее сама блур текстура, она не везде должна быть размыта одинакого, а это зависит от фукусировки. Да и простой гауссиан блур тут для реалестичной кинематографичной картинки не прокатит, изучите внимательно как выглядит размытие, и на крайняк гляньте фильтры блура в фотошопе, заметьте разницу..
И главное: он не должен мешать геймплаю никак вообще, а то приходиться чтобы увидить что-то, "бороться" с ним, водить мышкой чтобы там он прояснился - тупизм.
Как подметил Мр Ф, в CoD4 он хорошо применён, мало, очень в тему, и абсолютно не назойливо!
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
26.08.2009, 14:49
|
#14
|
Разработчик
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений (для 36 пользователей)
|
Ответ: Как сделать 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
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:32.
|