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=8595)

Petrofan 02.07.2009 17:36

Травка зеленеет
 
Кто знает как в 3D max посадить траву и чтобы она неколизилась с играком (и была с альфа каналом). Зарание благодарен.

IGR 02.07.2009 17:40

Ответ: Травка зеленеет
 

это точно для 2D раздела ??

johnk 02.07.2009 17:58

Ответ: Травка зеленеет
 
Были времена, когда многие ринулись реализовать траву в блице. Погугли, даже Матт Меркулов делал реализацию.

Ш.У.Р.И.К 07.07.2009 13:20

Ответ: Травка зеленеет
 
Ну и нормально на Блитце травка реализовывалась, спрайтами. Есть где то у меня этот код, если кому надо - поищу.

Petrofan 07.07.2009 13:59

Ответ: Травка зеленеет
 
Найди пожалуйста.
И еще вопрос как сделать так чтобы играк немог вылазить на большие горы карты а спускалмя назад (карта ведь не безрозмерная). Спасибо!

Mhyhr 07.07.2009 14:11

Ответ: Травка зеленеет
 
Цитата:

как сделать так чтобы играк немог вылазить на большие горы карты а спускалмя назад
1)Гравитацию более сильную ставь(вместе с коллизиями земли)
Или без падания:
2)Или условие с координатами X-Z-Y
3)Или колизия с невидимым мешом

IGR 07.07.2009 14:16

Ответ: Травка зеленеет
 
Цитата:

1)Гравитацию более сильную ставь(вместе с коллизиями земли)
Или без падания:
2)Или условие с координатами X-Z-Y
3)Или колизия с невидимым мешом
там углы наклона нада !!

ABTOMAT 07.07.2009 17:03

Ответ: Травка зеленеет
 
Цитата:

Ну и нормально на Блитце травка реализовывалась, спрайтами.
Ненормально спрайтами.

Halk-DS 07.07.2009 22:35

Ответ: Травка зеленеет
 
Точно не уверен, но на сколько я знаю, лучше траву делать при помощи одного меша. Просто много спрайтов - много мешей. А одно и тоже количество треугольников считается в одном меше быстрей чем в многих мешах. Кроме того, в блитсе есть своя система обработки спрайтов, а для норм травы она нафик не надо. Только лишний ресурс жрет.

Damp 08.07.2009 09:39

Ответ: Травка зеленеет
 
Палка о двух концах, если левел большой и травы много, то 1 мешем может быть уже не так выгоно, тогда будет смысл объединять в несколько мешей, типа квадратами, зонами такими.

Sleepybear 08.07.2009 10:51

Ответ: Травка зеленеет
 
Была подобная тема

рассматривался пример "DynamicGrass_Blitz3D_SrcAndMedia"

реализация травки в однов сурфейсе
у меня исходник есть могу выслать.

ArtemkA 09.07.2009 21:56

Ответ: Травка зеленеет
 
Цитата:

у меня исходник есть могу выслать.
Выложи плиз. :)

Halk-DS 10.07.2009 00:51

Ответ: Травка зеленеет
 
Цитата:

Сообщение от Damp (Сообщение 110330)
Палка о двух концах, если левел большой и травы много, то 1 мешем может быть уже не так выгоно, тогда будет смысл объединять в несколько мешей, типа квадратами, зонами такими.

Я своим предующим постом пытался доказать не не то, что надо использовать строго один меш, а чем их менше - тем лутше. А кто как послушал, так и понял... :crazy:

Ш.У.Р.И.К 10.07.2009 12:59

Ответ: Травка зеленеет
 
Пример колышашейся травки в Блитце из "уроков"

Graphics3D 640,480


Global windwave#
Global grasscount

Global player=CreateSphere()
PositionEntity player,0, 1, -5
cam=CreateCamera(player)
light=CreateLight()

Global groundtex=LoadTexture("ground.jpg") ; Текстура земли
Ground=CreatePlane()
PositionEntity Ground,0,-1,0
EntityTexture Ground, groundtex

ramp=CreateMesh()
surf=CreateSurface( ramp )

segs=1
width#=2

For k=0 To segs
x#=Float(k)*width/segs-width/2
u#=Float(k)/segs
AddVertex surf,x,1,0,u,0
AddVertex surf,x,-1,0,u,1
Next
For k=0 To segs-1
AddTriangle surf,k*2,k*2+2,k*2+3
AddTriangle surf,k*2,k*2+3,k*2+1
Next
EntityFX ramp, 16 Or 1

grasstex=LoadBrush("grass.png",4) ; Текстура травы
PaintMesh ramp, grasstex


Dim grass(1000)
Dim grass_dir#(1000)
grasscount=0
For j#=-10 To 10 Step 1
For i#=-10 To 10 Step 1
grass(grasscount)=CopyEntity(ramp)
x#=(i+Rnd(5,5))
z#=(j+Rnd(5,5))
y#=0;
PositionEntity grass(grasscount),x,y,z
grass_dir(grasscount)=Rand(-45,45)
grasscount=grasscount+1
Next
Next
HideEntity ramp

While KeyDown(1) <> True

If KeyDown(200) MoveEntity player, 0, 0, 0.2
If KeyDown(208) MoveEntity player, 0, 0, -0.2
If KeyDown(203) TurnEntity player, 0, 2, 0
If KeyDown(205) TurnEntity player, 0, -2, 0

If KeyDown(2) SpriteViewMode sp, 1
If KeyDown(3) SpriteViewMode sp, 2

wind(1)

UpdateWorld
RenderWorld
Flip
Wend
End

;--------------------
Function wind(speed#)
For i=0 To grasscount-1
x#=EntityX(grass(i))
z#=EntityZ(grass(i))
RotateEntity grass(i),0,grass_dir(i),Cos(windwave+z)*0.5
Next
windwave=(windwave+speed#)
End Function

Ш.У.Р.И.К 10.07.2009 13:15

Ответ: Травка зеленеет
 
Насчет увеличения гравитации... Если сделать ее слишком большой, то персонаж не сможет ходить по ступенькам (не переступит). Что посоветуете?


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

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