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

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

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

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

Ответ
 
Опции темы
Старый 20.12.2010, 22:44   #1
L.D.M.T.
Бывалый
 
Аватар для L.D.M.T.
 
Регистрация: 10.06.2006
Сообщений: 808
Написано 354 полезных сообщений
(для 832 пользователей)
Vertex Effects

разгребал старые исходники и нашел эту либу, не помню автора т.к. было оч давно... немного ее доработал чтобы менялись не только текстурные координаты, но и позиции самих вертексов - я думаю новичкам будет интересно.
Вложения
Тип файла: zip VertexEffects.zip (41.6 Кб, 457 просмотров)
__________________
Per Aspera Ad Astra...
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо L.D.M.T. за это полезное сообщение:
BlackOut (21.12.2010), Randomize (20.12.2010)
Старый 20.12.2010, 22:58   #2
L.D.M.T.
Бывалый
 
Аватар для L.D.M.T.
 
Регистрация: 10.06.2006
Сообщений: 808
Написано 354 полезных сообщений
(для 832 пользователей)
Ответ: Vertex Effects

вдогонку...

Graphics3D 640,480,16,2
camera=CreateCamera()
PositionEntity camera,0,0,-3
light=CreateLight()
RotateEntity light,45,45,0

;any mesh with enogh verts
mymesh = Createsphere(15)
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
__________________
Per Aspera Ad Astra...
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо L.D.M.T. за это полезное сообщение:
Arton (12.10.2013), BlackOut (21.12.2010), Randomize (20.12.2010)
Старый 20.12.2010, 23:03   #3
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,355
Написано 2,471 полезных сообщений
(для 6,852 пользователей)
Ответ: Vertex Effects

Занятно. Года 2 назад такие примеры дорогого стоили.
L.D.M.T. было бы замечательно если бы ты писал более развёрнутое описание и хотя бы один скриншотик, просто не все нынче имеют на руках B3D для просмотра.
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо Randomize за это полезное сообщение:
ABTOMAT (24.12.2010), BlackOut (21.12.2010), Reks888 (25.12.2010)
Ответ


Опции темы

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

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


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


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