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

Fant 14.03.2007 20:30

Деформация сферы
 
Я задумал сделать камень, но для этого нужно как-то деформировать сферу.

Поспрашивав, и почитав немного хелп, я понял, что в хелпе искать нечего... (вернее там есть все, но я не ЗНАЮ что искать)

Вообщем-то я даже не знаю что использовать, что бы деформировать объект, но мне сказали, что это долго и нудно!

Если есть ктр-нибудь, кто знает как это сделать, покажите как это сделать пожалуйста!

johnk 14.03.2007 20:35

Re: Деформация сферы
 
Тебе нужен 3DS Max. Деформируешь сферу модификатором FFD (оч. просто) И придаешь эффект камня с помощью Noise. Или можно просто с параметрами Noise поэкспериментировать, и не применять FFD.Все! Если хочешь, могу сделать...

Fant 14.03.2007 20:45

Re: Деформация сферы
 
Цитата:

Сообщение от JohnK
Тебе нужен 3DS Max. Деформируешь сферу модификатором FFD (оч. просто) И придаешь эффект камня с помощью Noise. Или можно просто с параметрами Noise поэкспериментировать, и не применять FFD.Все! Если хочешь, могу сделать...

спасибо за оперативный ответ!

забыл дописать!
СРЕДСТВАМИ БЛИЦ

А в max это не проблема, конечно!

johnk 14.03.2007 20:47

Re: Деформация сферы
 
Лично я считаю, что работа с моделями средствами Блиц, очень трудно...проще в максе сваять...но я могу ошибаться...Ну если решишься, то посмотри Хэлп -> 3D -> Поверхность (Surface). Сам не пробовал, так что не могу ни чем помочь...

Fant 14.03.2007 20:54

Re: Деформация сферы
 
Цитата:

Сообщение от JohnK
Лично я считаю, что работа с моделями средствами Блиц, очень трудно...проще в максе сваять...но я могу ошибаться...Ну если решишься, то посмотри Хэлп -> 3D -> Поверхность (Surface)

Ты обсолютно прав, но тем не менее я бы хотел научиться деформировать сферу.

Diplomat 14.03.2007 21:07

Re: Деформация сферы
 
Модификатор Noise в Блице иммитировать несложно. Достаточно пройтись по всем сурфейсам меша (CountSurfaces, GetSurface) и сдвинуть вертексы на некую величину, несущую элемент случайности (VertexCoords, Rnd).

Добавлено:

Забыл, UpdateNormals очень не помешает, если в сцене есть источники света.

Кроме того, такой алгоритм не будет полноценной заменой Нойсу, да и для камня больше подойдёт геосфера, а не сфера. Исходник по программному созданию геосферы в Блице- существует.

Черный крыс 14.03.2007 21:21

Re: Деформация сферы
 
Деформировать сферу можно так: ScaleEntity(sphera,5,1,5) и фсе! =)

johnk 14.03.2007 21:24

Re: Деформация сферы
 
Вспомнил! Тебе еще может помочь команда FitMesh mesh,x#,y#,z#,width#,height#,depth#[,uniform]! Я сейчас искал пример, реализации деформации сферы, но так и не нашел....продолжаю исать...

HolyDel 14.03.2007 21:44

Re: Деформация сферы
 
Поддерживаю Дипломата, и скажу ишо раз - Сферу блитзовскую не сдеформируеш в камеь. Придецца создавать геосферу средствами блитза что геморно.
Проще наверное сразу камень? Дипломат, как считаеш?

Fant 14.03.2007 22:03

Re: Деформация сферы
 
Всем спасибо за объяснение!
Dimlomat:
не мог бы ты мне как особо умному привести примерчик?

Diablo1909
Гы =) УМНО))

HolyDel
Мне не нужно супер красиво! Мне бы что-нибудь по-проще!

JohnK
Если найдешь - тебе респект!

moka 14.03.2007 23:35

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 - это сила нойса.

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

jimon 15.03.2007 00:27

Re: Деформация сферы
 
помойму ет даже в стандартных примерах блица было

moka 15.03.2007 00:34

Re: Деформация сферы
 
Да что-то насчёт нахождения и операций над вертексами било =), дык всёже нужно же помочь. :)

johnk 15.03.2007 11:48

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

Если поймешь принцип, камень тебе обеспечен!

Fant 15.03.2007 13:54

Re: Деформация сферы
 
Спасибо, хороший пример!

Вот только без "комментов" тут не обойтись, конечно!


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

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