Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 27.06.2011, 11:24   #16
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Имитация водной поверхности.

Блиц хуже Хорса по всем параметрам
нет. для казуалки по прежнему лучше блиц - потомучто работает ну везде. даже на встроенном интеловском видеокартах.
(Offline)
 
Ответить с цитированием
Старый 27.06.2011, 12:50   #17
Amatsu
Дэвелопер
 
Аватар для Amatsu
 
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений
(для 2,706 пользователей)
Ответ: Имитация водной поверхности.

Сообщение от HolyDel Посмотреть сообщение
нет. для казуалки по прежнему лучше блиц - потомучто работает ну везде. даже на встроенном интеловском видеокартах.
Главное чтобы работал на Win8, а то мне придется клиент игры переписывать под что-то другое
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Wegox (08.04.2012)
Старый 27.06.2011, 14:29   #18
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Имитация водной поверхности.

Почему хорс? А не EsenthelEngine? Или не огре? В есеншле мне примеры понравились

Кстати Hmax*sin^2(f(t)+k) очень удобно для прыжка. Если назначить на координату высоты то разницы почти не видно Я таки оптимизирую воду, в частном случае оно проще, если не давать камере наклоняться в стороны.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Mr_F_ (27.06.2011)
Старый 27.06.2011, 14:37   #19
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Имитация водной поверхности.

Сообщение от dsd Посмотреть сообщение
Почему хорс? А не EsenthelEngine? Или не огре? В есеншле мне примеры понравились
Xors3D, это наш, отечественный продукт. Я в своё время писал на него шейдеры (mSL), до сих пор можно найти в примерах (если в самых новых не убрали).
.Squid - посещает наш форум, так что есть прямая поддержка.
Плюс, если найдёшь реальный баг - поможешь проекту.
EsenthelEngine - это узко заточенный движок, для C++.
Огр - для тебя думаю будет там слишком много гемора и другой мороки, за место реальной реализации задуманных вещей. Огр тоже С++.
Если тебя привлекает "сразу к делу", то Blitz в этом случае очень удобен. А Xors3D, т.к. DX9, позволяет работать с шейдерами и другими плюшками.
Дело твоё, тут скорее идут дельные предложения, чем вербовка или т.п.
(Offline)
 
Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо moka за это полезное сообщение:
Crayzi (27.06.2011), Mr_F_ (27.06.2011), Reks888 (27.06.2011), St_AnGer (27.06.2011)
Старый 27.06.2011, 17:21   #20
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Имитация водной поверхности.

Примерно с час массировал мозг справочником Выгодского. Пришел к выводу, что пытаться честно генерировать меш с непериодической сеткой в прямом эфире быстро возможно, но для этих целей надо найти и похитить аутичного аспиранта с кафедры матана :D А лучше двух и с разных кафедр.

В общем решил я пользоваться специально сгенерированным мешем. Вуаля, первое приближение Пока без координат текстур

И ведь к этой поверхности легко привязать предметы.

Последний раз редактировалось dsd, 10.08.2011 в 03:06.
(Offline)
 
Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо dsd за это полезное сообщение:
Crayzi (27.06.2011), L.D.M.T. (27.06.2011), Program23 (27.06.2011), St_AnGer (27.06.2011)
Старый 27.06.2011, 18:34   #21
Crayzi
ПроЭктировщик
 
Регистрация: 26.06.2007
Сообщений: 194
Написано 21 полезных сообщений
(для 25 пользователей)
Ответ: Имитация водной поверхности.

Сообщение от MoKa Посмотреть сообщение
Xors3D, это наш, отечественный продукт. Я в своё время писал на него шейдеры (mSL), до сих пор можно найти в примерах (если в самых новых не убрали).
.Squid - посещает наш форум, так что есть прямая поддержка.
Плюс, если найдёшь реальный баг - поможешь проекту.
EsenthelEngine - это узко заточенный движок, для C++.
Огр - для тебя думаю будет там слишком много гемора и другой мороки, за место реальной реализации задуманных вещей. Огр тоже С++.
Если тебя привлекает "сразу к делу", то Blitz в этом случае очень удобен. А Xors3D, т.к. DX9, позволяет работать с шейдерами и другими плюшками.
Дело твоё, тут скорее идут дельные предложения, чем вербовка или т.п.
Ты мну щас реально склонил к Хорсу)) Надо какнить в нем поразбиратся))
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
moka (27.06.2011)
Старый 27.06.2011, 19:45   #22
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Имитация водной поверхности.

Приближение №2. Уже без швов. Теперь бамп мог бы пригодиться

Кто там говорил про один кораблик?

Последний раз редактировалось dsd, 10.08.2011 в 03:06.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Program23 (27.06.2011)
Старый 27.06.2011, 19:45   #23
L.D.M.T.
Бывалый
 
Аватар для L.D.M.T.
 
Регистрация: 10.06.2006
Сообщений: 808
Написано 354 полезных сообщений
(для 832 пользователей)
Ответ: Имитация водной поверхности.

с преломлением из fastext смотрится довольно-таки неплохо!
Миниатюры
Нажмите на изображение для увеличения
Название: voda.jpg
Просмотров: 814
Размер:	107.8 Кб
ID:	14226  
__________________
Per Aspera Ad Astra...
(Offline)
 
Ответить с цитированием
Старый 27.06.2011, 20:56   #24
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Имитация водной поверхности.

Чутка поднял разрешение и набросал мусора на воде

Слегка облагородил сами уравнения.
Чего явно не хватает кроме брызг с гребней?

Graphics3D 640,480,0,2
SetBuffer BackBuffer()
Dither 0
Dim plane#(0,0)
Dim noise#(0)
Dim CubeData#(0,0)
Global pivot,camera,mxs#,mys#,Light,timer3,debugcam,water mesh,watertex,dsd

pivot=CreatePivot()
PositionEntity pivot,0,3,-10
camera=CreateCamera(pivot)
CameraClsColor camera,0,75,151
light=CreateLight()
MeshLight=CreateSphere(6,light)
;ScaleMesh meshlight,0.3,0.3,0.3
EntityFX meshlight,1
watermesh=LoadMesh("mesh/water.b3d")
testtex=CreateTexture(256,256,256)
SetBuffer TextureBuffer(testtex)
Color 127,127,127
Rect 0,0,128,128
Rect 128,128,128,128
Color 235,240,235
Rect 0,128,128,128
Rect 128,0,128,128
SetBuffer BackBuffer()

dsd=CreatePivot()
cubecount=100
Dim cubedata#(cubecount,2)
For i=0 To cubecount
dh=CreateCube(dsd)
PositionEntity dh,Rand(-90,90),Rand(50,90),Rand(-90,90)
EntityColor dh,Rand(0,255),Rand(0,255),Rand(0,255)
ScaleEntity dh,Rnd(0.5,2),Rnd(0.5,2),Rnd(0.5,2)
cubedata#(i,0)=EntityX(dh,1)
cubedata#(i,1)=EntityZ(dh,1)
Next


watertex=LoadTexture("maps/water.jpg")
SetCubeMode watertex,1
EntityTexture watermesh,watertex,0,1

normaltex = LoadTexture("maps/waternormal.png")
TextureBlend normaltex,4
EntityTexture watermesh,watertex,0,0
preparations(watermesh)


While Not ((KeyDown(56) And KeyHit(62)) Or (KeyHit(56) And KeyDown(62)) Or KeyHit(1))
timer3=MilliSecs()

GrimMagicWater(watermesh)


UpdateWorld
RenderWorld
control(0.5,1.4)
Flip 0
Wend
End

Function GrimMagicWater(meshid)
PointEntity light,camera
PositionEntity light,225*Sin(MilliSecs()/30),15,225*Cos(MilliSecs()/30)
PositionEntity watermesh,EntityX(camera,1),0,EntityZ(camera,1)
RotateEntity watermesh,0,EntityYaw(camera,1)-45,0
If EntityY(camera,1)<1 Then PositionEntity camera,EntityX(camera,1),1,EntityZ(camera,1),1
ScaleTexture watertex,1+Sin(MilliSecs()/100)/10,1+Cos(MilliSecs()/50)/10



waveheight#=8
horizwave#=6
Noiseamplitude#=0.2
wavelength#=10 ; ìåíüøåå çíà÷åíèå îçíà÷àåò áîëüøóþ äëèíó
wavehorizlength#=35
speed#=1
time#=MilliSecs()*speed

mesh=meshid
meshsurf=GetSurface(mesh,1)
qvert=CountVertices(meshsurf)
;òåïåðü ìàãèÿ
For i=0 To qvert-1
x000#=plane#(i,0)
y000#=plane#(i,2)
z000#=0
TFormPoint x000,z000,y000,mesh,0
x00#=TFormedX()
y00#=TFormedZ()

z01#=waveheight*Cos(time/wavelength+x00*wavelength/3)+horizwave*Sin(time/wavehorizlength#+y00*wavelength/5)+Noiseamplitude*Sin(noise#(i)+time/4)
x01#=x00-waveheight*Cos(time/wavelength+x00*wavelength/3)+Noiseamplitude*Cos(noise#(i)+time/4)
y01#=y00-horizwave*Sin(time/wavehorizlength#+y00*wavelength/5)+Noiseamplitude*Sin(noise#(i)+time/4)
TFormPoint x01,z01,y01,0,mesh
VertexCoords meshsurf,i,TFormedX(),TFormedY(),TFormedZ()
VertexTexCoords meshsurf,i,x00/25,y00/25

Next
UpdateNormals mesh

For i=1 To CountChildren(dsd)
child=GetChild(dsd,i)

x00=cubedata#(i-1,0)
y00=cubedata#(i-1,1)
z01#=waveheight*Cos(time/wavelength+x00*wavelength/3)+horizwave*Sin(time/wavehorizlength#+y00*wavelength/5)+Noiseamplitude*Sin(noise#(i)+time/4)
x01#=x00-waveheight*Cos(time/wavelength+x00*wavelength/3)+Noiseamplitude*Cos(noise#(i)+time/4)
y01#=y00-horizwave*Sin(time/wavehorizlength#+y00*wavelength/5)+Noiseamplitude*Sin(noise#(i)+time/4)
PositionEntity child,x01,z01,y01,1
Next
End Function

Function preparations(meshid)
mesh=meshid
meshsurf=GetSurface(mesh,1)
qvert=CountVertices(meshsurf)
Dim plane#(qvert,3)
Dim noise#(qvert)
For i=0 To qvert-1
plane#(i,0)=VertexX(meshsurf,i) ;x
plane#(i,1)=VertexY(meshsurf,i) ;x
plane#(i,2)=VertexZ(meshsurf,i) ;x
noise#(i)=Rnd(0,359.99)
Next
End Function

Function control(speed#,mousesensitivity#)
If KeyDown(2) WireFrame True Else WireFrame False
mxs#=mxs#+(MouseXSpeed()/5.0)
mys#=mys#+(MouseYSpeed()/5.0)
RotateEntity camera,mousesensitivity#*mys#,-mousesensitivity#*mxs#,0
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
If KeyDown(17) Or KeyDown(200) MoveEntity camera,0,0,speed#
If KeyDown(31) Or KeyDown(20 MoveEntity camera,0,0,-speed#
If KeyDown(30) Or KeyDown(203) MoveEntity camera,-speed#,0,0
If KeyDown(32) Or KeyDown(205) MoveEntity camera,speed#,0,0
PositionEntity pivot,EntityX#(camera,1),EntityY#(camera,1),Entity Z#(camera,1)
PositionEntity camera,0,0,0


Text 100,10,"polygons in view "+TrisRendered()
If (MilliSecs()-timer3)<>0 Text 100,40,"Frames per second is: "+1000/(MilliSecs()-timer3)
End Function

Последний раз редактировалось dsd, 10.08.2011 в 03:06.
(Offline)
 
Ответить с цитированием
Старый 27.06.2011, 21:15   #25
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Ответ: Имитация водной поверхности.

если не видел - посотри это

http://tv-kom.com/water_AMT_full.rar
__________________
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
maxturbo (27.06.2011)
Старый 27.06.2011, 21:23   #26
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Имитация водной поверхности.

На встроенном в 945 чипсет не работает. Запускает, но не рисует. А большой брат недобука мертв
(Offline)
 
Ответить с цитированием
Старый 27.06.2011, 22:43   #27
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Имитация водной поверхности.

Вывел коэффициенты в название функций, теперь их тоже можно регулировать функциями. Долой однообразные волны :D

В принципе осталось только приделать частицы, чтобы точки с 95% от максимальной высоты плевались брызгами, найти хорошие текстуры и в принципе вода как в первых корсарах готова, можно еще и отражение наложить, это не тяжелый процесс. Но в общем вроде финиш, на воду пусть и не похоже, но на большую лужу жидкости в ветер определенно.

Последний раз редактировалось dsd, 10.08.2011 в 03:06.
(Offline)
 
Ответить с цитированием
Старый 27.06.2011, 22:56   #28
NitE
злобный флудер
 
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений
(для 1,476 пользователей)
Ответ: Имитация водной поверхности.

http://www.frecle.net/misc/Water.zip
(Offline)
 
Ответить с цитированием
Старый 27.06.2011, 23:27   #29
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Имитация водной поверхности.

Nite, ссылка не работает.

По моему я между делом, почти написал свой террэйн .
(Offline)
 
Ответить с цитированием
Старый 27.06.2011, 23:30   #30
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Имитация водной поверхности.

Работает.
dsd - изобретает давно изобретённые велосипеды..
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com