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

Sora_Musoka 07.01.2011 17:25

Как создать "Астероидное поле"?
 
Вложений: 1
Собственно мучает вопрос, как создать астероидное поле?

Спрайтами, сферами или сразу в 3D редакторе делать весь объект?

- от камеры "оно" будет достаточно далеко

примерная схема в приложении.

Mr_F_ 07.01.2011 17:33

Ответ: Как создать "Астероидное поле"?
 
для чего поле предназначено? кто обозначен пивотом?

Sora_Musoka 07.01.2011 17:38

Ответ: Как создать "Астероидное поле"?
 
Предназначено для того, чтобы глаз радовался. Если ты имеешь ввиду будет ли с ним взаимодействие других объектов? Нет.

Пивот - просто центр вокруг которого они будут крутиться.

Можно ли, расставить спрайты случайным образом ТОЛЬКО на оранжевой зоне?

ARA 07.01.2011 17:43

Ответ: Как создать "Астероидное поле"?
 
Цитата:

Можно ли, расставить спрайты случайным образом ТОЛЬКО на оранжевой зоне?
Можно! (инфа 100%)

HolyDel 07.01.2011 17:51

Ответ: Как создать "Астероидное поле"?
 
откуда будем смотреть на поле? с торца будем? или преимущественно сверху\снизу?

Sora_Musoka 07.01.2011 18:00

Ответ: Как создать "Астероидное поле"?
 
А это имеет значение?

Как в стратегиях - только сверху, под углом.

ARA 07.01.2011 18:03

Ответ: Как создать "Астероидное поле"?
 
Можешь считывать с картинки жёлтые пикселы и на них ставить астероиды)
Можешь в максе наделать кучу пивотов, экспортнуть и на них позиционировать спрайты)
Методов масса

HolyDel 07.01.2011 18:10

Ответ: Как создать "Астероидное поле"?
 
если только сверху - то проще создать кольца мешем и натянуть на них соответствующую текстуру (чем выводить кучу мешей (или еще хуже, кучу ентитей)). тем более если камера будет далеко

DeeJex 07.01.2011 18:13

Ответ: Как создать "Астероидное поле"?
 
Цитата:

Можно ли, расставить спрайты случайным образом ТОЛЬКО на оранжевой зоне?
pitch# = Rnd(360)
yaw# = Rnd(360)
roll# = Rnd(360)
dist# = Rnd(100,150)

x# = sin(pitch)*dist
y# = cos(yaw)*dist
z# = sin(roll)*dist

башка щас плохо соображает, могут быть ошибки

HolyDel 07.01.2011 18:18

Ответ: Как создать "Астероидное поле"?
 
тогда уж так:
Код:

pitch# = Rnd(360)
yaw# = Rnd(360)
dist# = Rnd(100,150)

x# = sin(yaw)*dist
y# = 0
z# = cos(yaw)*dist


Sora_Musoka 07.01.2011 18:35

Ответ: Как создать "Астероидное поле"?
 
Помогите разобраться на простом примере:

Код:

Graphics3D 640,480
SetBuffer BackBuffer()

camera=CreateCamera()
PositionEntity camera, 0, 100, 0

;pitch# = Rnd(360)
;yaw# = Rnd(360)
;dist# = Rnd(100,150)

;x# = Sin(yaw)*dist
;y# = 0
;z# = Cos(yaw)*dist

Dim ast(100) 

For i=0 To 100
       
        ast(i)=CreateSphere(8, asterPoint)
        PositionEntity ast(i), Sin(Rnd(360))*Rnd(100,150), 0, Cos(Rnd(360))*Rnd(100,150)
        EntityColor ast(i), 255, 0, 0
 
Next

light=CreateLight()
RotateEntity light,90,0,0

; Создаем сферу
sphere=CreateSphere()
ScaleEntity sphere, 2, 2, 2

PositionEntity sphere,0,0,5

PointEntity camera, sphere

While Not KeyDown( 1 )
RenderWorld
Flip
Wend

End


HolyDel 08.01.2011 05:55

Ответ: Как создать "Астероидное поле"?
 
не

Код:

PositionEntity ast(i), Sin(Rnd(360))*Rnd(100,150), 0, Cos(Rnd(360))*Rnd(100,150)
а

Код:

yaw# = Rnd(360)
dist# = Rnd(100,150)

x# = sin(yaw)*dist
y# = 0
z# = cos(yaw)*dist

PositionEntity ast(i), x, y, z

заметь - сначала высчитывается угол и расстояние, затем высчитывается позиция в мировых координатах.

Sora_Musoka 08.01.2011 12:03

Ответ: Как создать "Астероидное поле"?
 
Спасибо, не думал что такая маленькая деталь имеет значение.

HolyDel 08.01.2011 17:28

Ответ: Как создать "Астероидное поле"?
 
пожалуйсто конечно, но ты идешь неверным путем.

если тебе астероидное поле нужно чисто для декорации (астероиды не будуь падать на планету, к астероидам нельзя будет летать, нельзя будет конкретный астероид выбрать, и. т.д.) то лучше делать как написано в посте № 8.

у блица очень высокая цена ентити. пусть она(он, оно???) простой спрайт. поэтому остается либо запекать геометрию в один сюрфейс и выводить за один батч (красивее, не спорю), либо следовать совету из поста 8, и не забывай про dot3 текстуры.

вся деятельность геймдевелопера в конце концов сводится к тому - как получить наиболее красивую картинку, затратив как можно меньше ресурсов компа.

Reizel 08.01.2011 17:47

Ответ: Как создать "Астероидное поле"?
 
фига маленькая


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

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