![]() |
Размытие...
НароД, неподскажите как сделать размытие как во многих играх, например когда едеш на мошине (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: Размытие...
Кста, этот код пока пробный, я потом начну новый код писать, уже совсем другую игру, но постараюсь разобраться)
|
Ответ: Размытие...
Код:
;RPG Hax Цитата:
Причем второй ты даже скопипастить толком не смог... Я всегда говорил, что копипаст - зло! Учи азы! |
спс огромное))
А кстати, сможеш сказать пожалст, какие ты внёс изменения, всётаки надо понять))) |
Ответ: Размытие...
Спс в статистеке не отобразится :-) Есть кнопка "Thanks"... эээ ... тоесть "Полезно" ;) :)
Цитата:
Код:
; это всё - код ДО главного цыкла Код:
UpdatePlayer(Player) Код:
CameraRange cam ,1,10000 |
Ответ: Размытие...
ЗЫЖ.
снова и снова... Ничего не буду говорить. Захочет - сам поумнеет. а) о блюре говорили много и еще раз много... А потом еще много всего добавили, и даже потом обновляли, правили, в итоге получив множество инфы. (топикстартеру читать следующее предложение запрещено) И если у человека кора головного мозга с отсутствующей картой нормалей - то это его проблемы. Ибо [no place for copy-pastors in true gamedev] ... Raiter, а тебе огромный респект за проявленное терпение. Эх, и по теме добавить нечего. Хотя... Советую поэкспериментировать с различными блур-эффектами (прим. внутреннего голоса: "Если в соктебрастенный код вникнешь"), особенно с различными вариантами TextureBlend (ты же догадаешься для этого рендерить одну текстуру для блюра а затем делать несколько слоев с мультитекстурированием? (; ) при сильном и жгучем желании тебе светит даже glow. Точнее его подобие. |
Ответ: Размытие...
Цитата:
PS: glow тоже на форуме был !! так-что JeSss, если надо, то лучше сначала поищи, а потом еси что не понятно, то спрашивай !! :) |
Ответ: Размытие...
Симпатичный глоу делал МоКа.
смотри на www.moka.ucoz.ru |
Ответ: Размытие...
Цитата:
А тебе, JeSss, я еще раз ОЧЕНЬ НАСТОЯТЕЛЬНО рекомендую начать с изучения азов! Я понимаю, что тебе хочется сразу написать великую игру. Все мы (или почти все) это проходили. Но ты никогда не сможеш постоить хороший дом без фундамента. И никогда не начнёш строить его с крыши. Человек сначала усится ходить, а уже потом бегать... Вот фундамент - это твои базовые знания! Так заложи фундамент и постепенно строй дом, продвигаясь к крыше. Научись ходить и со временем побежиш! ;) И никогда не копировать чужой код. Ну или по крайней мере не копировать, если ты не понимаеш этот код.... |
Re: Размытие...
спасмбо вообщем всем за всё! А тебе, Raiter, отдельное, БОЛЬШОЕ, 2-ое спасибо! (2-ое значит я тя 2 раза поблагодарил))) за помощь в коде, и за обьяснение)) )
А кстати, ещё 1 вопрос, напишу сдесь: как сделать чтобы чел двигался вперёд ПОСЛЕ НАЖАТИЯ кнопки, а не вовремя ЗАЖАТОЙ кнопки?? |
Ответ: Размытие...
завести перменную состояния
If KeyDown(200) then run=1 if keydown(208) then run=0 if run then moveentity plaeyer,0,0,1 |
Ответ: Размытие...
Цитата:
if Not(run=0) then moveentity plaeyer,0,0,1 |
Ответ: Размытие...
ну смотря что требуется.
кстати, в таком случае: If KeyHit(200) then run=1-run |
Ответ: Размытие...
Или:
IKhUp=KeyHit(200) If IKhUp run=not run |
Re: Размытие...
спасибо, оба работают!
|
Re: Ответ: Размытие...
[quote=Raiter;75108]Спс в статистеке не отобразится :-) Есть кнопка "Thanks"... эээ ... тоесть "Полезно" ;) :)
Йпрст... Ты смотрел хоть пример на БлицЕтСетера??? Или тупо скопировал 2 ф-ции? Скорее второе. Ну ф-ции скопировтаь то ты скопировал, а вызывать их кто за тебя будет? Я лишь дописал вызов функций в цыкле и перед ним. Вот и всё. Вот смотри: Код:
; это всё - код ДО главного цыкла Код:
UpdatePlayer(Player) Код:
CameraRange cam ,1,10000 Млин, я вообщем начал делать новый код, и нечё неработает, програма открывается, чёрный экран, и сразуже выходит...(( непойму ф чём дело то(((((:''(( |
Ответ: Размытие...
игрового цикла нет?
|
Re: Размытие...
эээм, вроде есть...
|
Ответ: Размытие...
камера есть?
вообще давай код в студию. |
Re: Размытие...
Держи:
Graphics3D 640,480,16,1 SetBuffer BackBuffer() lit=CreateLight() cub=CreateCube() PositionEntity cub,0,500,0 EntityColor cub,0,355,0 cam=CreateCamera(cub) ; Делаем столб stolb=CreateCube() ScaleEntity stolb,1,4,1 PositionEntity stolb,-7,0,7 ; Делаем столб stolb2=CreateCube() ScaleEntity stolb2,1,4,1 PositionEntity stolb2,7,0,7 ;Функция создания слоя размытия, привязанного к камере - возвращает адрес слоя 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 plan=CreatePlane() EntityColor plan,0,0,255 PositionEntity plan,0,-1,5 PositionEntity cam,0,3,-5 bl=createblurlayer(cam,1,0,1,1,.95,1,o) Repeat If KeyHit(200) Then run=1-run If Not(run=0) Then MoveEntity cub,0,-0.5,0 If KeyDown(208) MoveEntity cub,0,0,-.1 If KeyDown(203) TurnEntity cub,0,1,0 If KeyDown(205) TurnEntity cub,0,-1,0 UpdateWorld RenderWorld Flip bltex=updateblurlayer(bl,bltex) Flip Until KeyDown(1) 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 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 End |
Ответ: Размытие...
это аццкийчтозанах.
1. где игровой цикл? Нафиг ты его впихнул в ф-ию? Лана, фиг с ним, пусть живет в фу-ии, но ее надо хотябы вызвать. 2. что это должно делать я так и не понял. |
Re: Размытие...
Кароч я хачю вызвать Блур, но как, в чём проблема я писал, про чёрный экран(((
|
Ответ: Размытие...
Код:
;инициализируем графику |
Ответ: Размытие...
Цитата:
|
Re: Ответ: Размытие...
Цитата:
Можно в коде plzzzz:SOS: |
Ответ: Размытие...
Вот!
Код:
;инициализируем графику |
Ответ: Размытие...
Райтер, ты скоро книгу Б.Мартузана "Подружись со мной, компьютер!" ему напишешь. Али "Выучи Блиц3Д за 21 день". ))
|
Ответ: Размытие...
Это у них с ХолиДелом болезнь такая. Время от времени раскрывается и нубы пользуются симптомами :-)
|
Re: Ответ: Размытие...
Raiter
Тамже нету эфекта размытия... |
Ответ: Размытие...
Человек просто не желает учить, он хочет сделать, а учить не хочет..
Или это стёб.. |
Re: Размытие...
Это не стёб, и сделать я хачу, как только я сделал, у меня просто в углу появился квадратик и всё... некакова блура нет...
|
Ответ: Размытие...
JeSss
Какое размытие ? Какой рагдолл ? Ты абсолютно не знаешь алгоритмики и спотыкаешся на элементарных вещах. Еще одна такая тема (сложные вещи, в которых ты ни в зуб ногой) и буду ставить вопрос о удалении твоих тем. Все равно толку никакого. Еще раз требую: пройди простые уроки, разбери примеры, пойми что и как работает. Не копируй код, не поняв его ! Raiter, HolyDel Не пишите ему ни строчки кода, пока не освоит азов Вы его развращаете. Он же не думает совершенно, только попрошайничает. |
Ответ: Размытие...
Ржал, не мог сдержать слёз. Всем спастбо ;)
|
Ответ: Размытие...
Цитата:
ЗЫЖ Diplomat, жжош! |
Ответ: Размытие...
Я думаю его надо забанить на месяц - учить азы.
|
Ответ: Размытие...
Цитата:
А тут мы пытаемся навернуть его на путь истинный... 2 JeSss: Может так будет понятнее? :dontknow: Код:
;инициализируем графику В цикле ты пишеш тот код, который должен постоянно повторятся. В нём ты не пишеш создание камеры и т.д. В цыкле конечно выполняются единичные действия или действия которые повторяюся нужное кол-во раз, а не постоянно, но для этого вводятся условия ( If - Then ( Else - IfElse ) ), счетчики или переменные - флаги. Синим (и зеленым) выделено то, что ты пишеш ДО цыкла. Зеленым выделена функция. Жирным - начал и конец оной.... |
Re: Размытие...
То, что ты их раскрасил пойму без темы, это я и так понимал, а насчёт функций, я туда впихивал функции создания и обновления Блоу, и НЕФИГА!
|
Ответ: Размытие...
JeSss. разберись пока в этом коде.
рано тебе еще делать Блоу (кем бы он не был) |
Ответ: Размытие...
Цитата:
|
Ответ: Размытие...
JeSss
подсказка на милион : 1) не работает Код:
repeat Код:
repeat |
Re: Ответ: Размытие...
Цитата:
|
Ответ: Размытие...
Я с Вас фигею, Господа. В соседней ветке срете человеку за шиворот, за плохой(по вашему мнению) код, а тут разноцветными фламастерами разрисовываете КритКубы ленивому Нубу.
|
Ответ: Размытие...
"Срем за шиворот" потому, что вот "ленивый нуб" и в простейшем коде не может разобратся. А теперь представть что будет, если он скопирует тот код ;)
|
Ответ: Размытие...
dimanche13 + 1
в упор не понимаю почему забанили "Главу Проекта". Оскорблений со стороны "обсирателей" было не меньше, а то и больше. имхо, нубчик который ошибается лучше чем нубчик который ничего не делает. |
Ответ: Размытие...
Цитата:
Примеры оскорблений его в студию Я таковых не нашел Вся критика кода по делу На личности никто не переходил |
Ответ: Размытие...
tormoz, это не критика ;)
критика - это когда указывают на ошибки, а не на их наличие. ща будет added не будет ;) оказывается прямые оскорбления "Главы Проекта" начались после евошных оскорблений: пример: Цитата:
Цитата:
|
Ответ: Размытие...
HolyDel
Ты невнимательно посмотрел. Оскорбление с говноедами и засранцами было выше поста Райтера Он только ответил (ИМХО еще мягко) Я среагировал по правилам: нагадил- получи. Минимальный срок бана за оскорбления 10 суток. |
Ответ: Размытие...
Цитата:
|
Ответ: Размытие...
Его никто не оскорблял :) Я лишь сделал выводы, почитав его пост. Выводы были изложени постом ниже...
На него никто не наежжал. Ему лиш сказали, что код плохой. Но похоже, что это человек с завышенной самооценкой. Да чёрт с тем кодом. Плохой так плохой. Всеравно возможно была бы хоть какая-то польза для новичков. НО! Меня задело вот что: Цитата:
|
Ответ: Размытие...
Просто он ожидал большего.
Иногда человек хочет подружиться и незнает как. Я например тже выкладываю на народ, не только по моему мнению хороший код, но и плохой, а порой ужастный. Народ, давайте закроем эту темку, что уже сделано, то сделано, и нечего тут обсуждать, все для себя что-то поняли, и хватит на этом. Не хочется снова на форуме того балогана и беспредела что не раз разжигался здесь. Спасибо |
Ответ: Размытие...
Нды... тема темы под действием эффекта размытия размыла мое сознание.
Дипломат, требуется твое дипломатическое вмешательство. |
Часовой пояс GMT +4, время: 23:06. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot