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 21.01.2008 19:05

Re: Размытие...
 
эээм, вроде есть...

HolyDel 21.01.2008 19:11

Ответ: Размытие...
 
камера есть?
вообще давай код в студию.

JeSss 21.01.2008 19:17

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

HolyDel 21.01.2008 19:35

Ответ: Размытие...
 
это аццкийчтозанах.
1. где игровой цикл? Нафиг ты его впихнул в ф-ию? Лана, фиг с ним, пусть живет в фу-ии, но ее надо хотябы вызвать.
2. что это должно делать я так и не понял.

JeSss 21.01.2008 19:40

Re: Размытие...
 
Кароч я хачю вызвать Блур, но как, в чём проблема я писал, про чёрный экран(((

Raiter 21.01.2008 19:41

Ответ: Размытие...
 
Код:

;инициализируем графику
Graphics3D 800,600,32,1

;юзаем двойную буферизацию. для этого "рабочим" устанавливаем задний буфер
SetBuffer BackBuffer()

; тут можеш объявлять переменные, типы, грузить модели, создавать примитивы и т.д.

; глобальная переменная
Global Variable1

; тип
Type MyType1
    Field X
End Type

; создаем примитив, камеру, свет
Cube = CreateCube()
Light = CreateLight()
Cam = CreateCamera()


; начало главного цыкла. В перводе звучит как "повторять".
; Тоесть весь код после этого слова будет непрерывно (точне до
; определенного уcловия,
; при котором выполнение прервётся) выполнятся

Repeat

; здесь будет основной код твоей игры
; мы можем вызвать ф-цию сдесь

Func1()


; рендерим нашу картинку
RenderWorld()

; меняем местами задний и передний буффер
Flip

; пока не нажата кнопка "Esc". конец цылка, выход с него,
; завершение програмы, короче хеппиенд :)
Until KeyDown(1)

; тут можеш писать функции

; объявляем ф-цию
Function Func1()

  ; тут код ф-ции

; закрываем ф-цию
End Function


HolyDel 21.01.2008 19:45

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

Кароч я хачю вызвать Блур, но как, в чём проблема я писал, про чёрный экран(((
посмотри еще раз на свою программу внимательно. она ничего не делает.

JeSss 21.01.2008 19:47

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

Сообщение от Raiter (Сообщение 75216)
Код:

;инициализируем графику
Graphics3D 800,600,32,1
 
;юзаем двойную буферизацию. для этого "рабочим" устанавливаем задний буфер
SetBuffer BackBuffer()
 
; начало главного цыкла. В перводе звучит как "повторять".
; Тоесть весь код после этого слова будет непрерывно (точне до
; определенного уcловия,
; при котором выполнение прервётся) выполнятся
 
Repeat
 
; здесь будет основной код твоей игры
 
; рендерим нашу картинку
RenderWorld()
 
; меняем местами задний и передний буффер
Flip
 
; пока не нажата кнопка "Esc". конец цылка, выход с него,
; завершение програмы, короче хеппиенд :)
Until KeyDown(1)


Впринцыпи понятно, но неочень..(:wallbash: :''((
Можно в коде plzzzz:SOS:

Raiter 21.01.2008 20:23

Ответ: Размытие...
 
Вот!

Код:

;инициализируем графику
Graphics3D 800,600,32,1

;юзаем двойную буферизацию. для этого "рабочим" устанавливаем задний буфер
SetBuffer BackBuffer()

; тут можеш объявлять переменные, типы, грузить модели, создавать примитивы и т.д.

; ========================= П Е Р Е М Е Н Н Ы Е =========================

; глобальная переменная
Global Variable1

; ====================================================================



; ============================== Т И П Ы ===============================

; тип
Type MyType1
    Field X
End Type

; ====================================================================

; =========================== О Б Ъ Е К Т Ы =============================

; создаем примитив - куб
Global Cube = CreateCube()
PositionEntity Cube,0,1,0

; создаем свет
Light = CreateLight()
; создаем камеру
Cam = CreateCamera()
; помещаем камеру немного сзади и сверху
PositionEntity Cam,0,5,-10

; создаем плоскость
Plane = CreatePlane()
; ставим для неё цвет
EntityColor Plane,0,0,255
 
; ====================================================================


; ================================ Г Л А В Н Ы Й  Ц Ы К Л ===================

; начало главного цыкла. В перводе звучит как "повторять".
; Тоесть весь код после этого слова будет непрерывно (точне до
; определенного уcловия,
; при котором выполнение прервётся) выполнятся

Repeat

; здесь будет основной код твоей игры
; мы можем вызвать ф-цию сдесь

UpdatePlayer() ; вызываем ф-цию обновления игрока. ф-цию управления им


; рендерим нашу картинку
RenderWorld()

; меняем местами задний и передний буффер
Flip

; пока не нажата кнопка "Esc". конец цылка, выход с него,
; завершение програмы, короче хеппиенд :)
Until KeyDown(1)

; ======================================================================


; ================================= Ф У Н К Ц И И =====================
; тут можеш писать функции

; объявляем ф-цию
Function UpdatePlayer() ; ф-ция обновления игрока

  ; тут код ф-ции
  If KeyDown(200) Then MoveEntity Cube,0,0,0.1 ; движение вперед
  If KeyDown(208) Then MoveEntity Cube,0,0,-0.1  ; движение назад

  If KeyDown(203) Then TurnEntity Cube,0,1,0 ; поворот влево
  If KeyDown(205) Then TurnEntity Cube,0,-1,0 ; поворот вправо
 
; закрываем ф-цию
End Function

; =====================================================================


Diplomat 21.01.2008 20:56

Ответ: Размытие...
 
Райтер, ты скоро книгу Б.Мартузана "Подружись со мной, компьютер!" ему напишешь. Али "Выучи Блиц3Д за 21 день". ))

Tadeus 21.01.2008 21:25

Ответ: Размытие...
 
Это у них с ХолиДелом болезнь такая. Время от времени раскрывается и нубы пользуются симптомами :-)

JeSss 21.01.2008 21:34

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

Тамже нету эфекта размытия...

FrankH 21.01.2008 21:49

Ответ: Размытие...
 
Человек просто не желает учить, он хочет сделать, а учить не хочет..
Или это стёб..

JeSss 21.01.2008 22:19

Re: Размытие...
 
Это не стёб, и сделать я хачу, как только я сделал, у меня просто в углу появился квадратик и всё... некакова блура нет...

tormoz 21.01.2008 22:49

Ответ: Размытие...
 
JeSss
Какое размытие ?
Какой рагдолл ?
Ты абсолютно не знаешь алгоритмики и спотыкаешся на элементарных вещах.
Еще одна такая тема (сложные вещи, в которых ты ни в зуб ногой) и буду ставить вопрос о удалении твоих тем.
Все равно толку никакого.
Еще раз требую: пройди простые уроки, разбери примеры, пойми что и как работает.
Не копируй код, не поняв его !

Raiter, HolyDel
Не пишите ему ни строчки кода, пока не освоит азов
Вы его развращаете.
Он же не думает совершенно, только попрошайничает.


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

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