 |
3D-программирование Вопросы, касающиеся программирования 3D мира |
14.03.2007, 20:30
|
#1
|
Бывалый
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений (для 5 пользователей)
|
Деформация сферы
Я задумал сделать камень, но для этого нужно как-то деформировать сферу.
Поспрашивав, и почитав немного хелп, я понял, что в хелпе искать нечего... (вернее там есть все, но я не ЗНАЮ что искать)
Вообщем-то я даже не знаю что использовать, что бы деформировать объект, но мне сказали, что это долго и нудно!
Если есть ктр-нибудь, кто знает как это сделать, покажите как это сделать пожалуйста!
|
(Offline)
|
|
14.03.2007, 20:35
|
#2
|
Легенда
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений (для 568 пользователей)
|
Re: Деформация сферы
Тебе нужен 3DS Max. Деформируешь сферу модификатором FFD (оч. просто) И придаешь эффект камня с помощью Noise. Или можно просто с параметрами Noise поэкспериментировать, и не применять FFD.Все! Если хочешь, могу сделать...
|
(Offline)
|
|
14.03.2007, 20:45
|
#3
|
Бывалый
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений (для 5 пользователей)
|
Re: Деформация сферы
Сообщение от JohnK
Тебе нужен 3DS Max. Деформируешь сферу модификатором FFD (оч. просто) И придаешь эффект камня с помощью Noise. Или можно просто с параметрами Noise поэкспериментировать, и не применять FFD.Все! Если хочешь, могу сделать...
|
спасибо за оперативный ответ!
забыл дописать!
СРЕДСТВАМИ БЛИЦ
А в max это не проблема, конечно!
|
(Offline)
|
|
14.03.2007, 20:47
|
#4
|
Легенда
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений (для 568 пользователей)
|
Re: Деформация сферы
Лично я считаю, что работа с моделями средствами Блиц, очень трудно...проще в максе сваять...но я могу ошибаться...Ну если решишься, то посмотри Хэлп -> 3D -> Поверхность (Surface). Сам не пробовал, так что не могу ни чем помочь...
|
(Offline)
|
|
14.03.2007, 20:54
|
#5
|
Бывалый
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений (для 5 пользователей)
|
Re: Деформация сферы
Сообщение от JohnK
Лично я считаю, что работа с моделями средствами Блиц, очень трудно...проще в максе сваять...но я могу ошибаться...Ну если решишься, то посмотри Хэлп -> 3D -> Поверхность (Surface)
|
Ты обсолютно прав, но тем не менее я бы хотел научиться деформировать сферу.
|
(Offline)
|
|
14.03.2007, 21:07
|
#6
|
Дэвелопер
Регистрация: 07.09.2005
Сообщений: 1,519
Написано 66 полезных сообщений (для 164 пользователей)
|
Re: Деформация сферы
Модификатор Noise в Блице иммитировать несложно. Достаточно пройтись по всем сурфейсам меша (CountSurfaces, GetSurface) и сдвинуть вертексы на некую величину, несущую элемент случайности (VertexCoords, Rnd).
Добавлено:
Забыл, UpdateNormals очень не помешает, если в сцене есть источники света.
Кроме того, такой алгоритм не будет полноценной заменой Нойсу, да и для камня больше подойдёт геосфера, а не сфера. Исходник по программному созданию геосферы в Блице- существует.
|
(Offline)
|
|
14.03.2007, 21:21
|
#7
|
|
Re: Деформация сферы
Деформировать сферу можно так: ScaleEntity(sphera,5,1,5) и фсе! =)
|
|
|
14.03.2007, 21:24
|
#8
|
Легенда
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений (для 568 пользователей)
|
Re: Деформация сферы
Вспомнил! Тебе еще может помочь команда FitMesh mesh,x#,y#,z#,width#,height#,depth#[,uniform]! Я сейчас искал пример, реализации деформации сферы, но так и не нашел....продолжаю исать...
|
(Offline)
|
|
14.03.2007, 21:44
|
#9
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Re: Деформация сферы
Поддерживаю Дипломата, и скажу ишо раз - Сферу блитзовскую не сдеформируеш в камеь. Придецца создавать геосферу средствами блитза что геморно.
Проще наверное сразу камень? Дипломат, как считаеш?
|
(Offline)
|
|
14.03.2007, 22:03
|
#10
|
Бывалый
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений (для 5 пользователей)
|
Re: Деформация сферы
Всем спасибо за объяснение!
Dimlomat:
не мог бы ты мне как особо умному привести примерчик?
Diablo1909
Гы =) УМНО))
HolyDel
Мне не нужно супер красиво! Мне бы что-нибудь по-проще!
JohnK
Если найдешь - тебе респект!
|
(Offline)
|
|
14.03.2007, 23:35
|
#11
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Re: Деформация сферы
Фант, я в проектах делал пост "Destruction Sphere", если его смотрел, то там была такая фича: чем меньше хп, тем скуднее тачка цветом, и форма помятая. А если взорвать, то вообще мятая сильно =).
Вот пример (пишу в броузере):
[blitz]Function MeshNoise(Mesh,vS#)
sCnt=CountSurfaces(Mesh)
For n=1 to sCnt
Surface=GetSurface(Mesh,n)
vCnt=CountVertices(Surface)
For v=0 to vCnt
VertexCoords Surface,v,VertexX(Surface,v)+Rnd(-vS,vS),VertexY(Surface,v)+Rnd(-vS,vS),VertexZ(Surface,v)+Rnd(-vS,vS)
Next
Next
End Function[/blitz]
vS - это сила нойса.
На этой основе можно делать разнообразные деформации, всякие, просто вместо рандомности использовать можно и другие значения.
|
(Offline)
|
|
15.03.2007, 00:27
|
#12
|
|
Re: Деформация сферы
помойму ет даже в стандартных примерах блица было
|
|
|
15.03.2007, 00:34
|
#13
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Re: Деформация сферы
Да что-то насчёт нахождения и операций над вертексами било =), дык всёже нужно же помочь. 
|
(Offline)
|
|
15.03.2007, 11:48
|
#14
|
Легенда
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений (для 568 пользователей)
|
Re: Деформация сферы
Нашел что-то похожее на Noise:
;set up
Graphics3D 640,480,16,2
camera=CreateCamera()
PositionEntity camera,0,0,-3
light=CreateLight()
RotateEntity light,45,45,0
;any mesh with enough verts
mymesh = CreateSphere(12)
EntityShininess mymesh,1
While Not KeyHit(1)
RippleMesh(mymesh,1,20,0.01)
UpdateWorld
RenderWorld
Flip
Wend
End
;mesh is your mesh
;speed is how fast it ripples
;density is how fine the effect is (experiment to see how much of the mesh you affect)
;depth is how much it ripples
Function ripplemesh(mesh,speed#,density#,depth#)
count=MilliSecs()*speed
For scount=1 To CountSurfaces(mesh)
surface = GetSurface(mesh,scount)
numverts=CountVertices(surface)-1
For i=0 To numverts
a#=Cos(count+(i*density))*speed
b#=Sin(count+(i*density))*speed
c#=-b;Sin(count+(i*density))*speed
nx#=VertexNX(surface,i)*depth
ny#=VertexNY(surface,i)*depth
nz#=VertexNZ(surface,i)*depth
x#=VertexX(surface,i)
y#=VertexY(surface,i)
z#=VertexZ(surface,i)
VertexCoords surface,i,x#+(a*nx),y#+(b*ny),z#+(c*nz)
Next
Next
End Function
Если поймешь принцип, камень тебе обеспечен!
|
(Offline)
|
|
15.03.2007, 13:54
|
#15
|
Бывалый
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений (для 5 пользователей)
|
Re: Деформация сферы
Спасибо, хороший пример!
Вот только без "комментов" тут не обойтись, конечно!
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 16:13.
|