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

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

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

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

Ответ
 
Опции темы
Старый 24.01.2007, 14:41   #16
Platon
Знающий
 
Регистрация: 04.08.2006
Адрес: Россия
Сообщений: 297
Написано 39 полезных сообщений
(для 70 пользователей)
Re: Частичное текстурирование примитива.

Вот, с текстурными координатами мог напутать, а так функция должна работать.
Function CreateCube2(SizeX# = 1, SizeY# = 1, SizeZ# = 1)
	Local Mesh = CreateMesh()
	;top
	Local Surface = CreateSurface(Mesh)
	AddVertex(Surface, -0.5, 0.5,  0.5, 0, 0)
	AddVertex(Surface,  0.5, 0.5,  0.5, 1, 0)
	AddVertex(Surface,  0.5, 0.5, -0.5, 1, 1)
	AddVertex(Surface, -0.5, 0.5, -0.5, 0, 1)
	AddTriangle(Surface, 0, 1, 2)
	AddTriangle(Surface, 2, 3, 0)
	;bottom
	Surface = CreateSurface(Mesh)
	AddVertex(Surface, -0.5, -0.5,  0.5, 0, 0)
	AddVertex(Surface,  0.5, -0.5,  0.5, 1, 0)
	AddVertex(Surface,  0.5, -0.5, -0.5, 1, 1)
	AddVertex(Surface, -0.5, -0.5, -0.5, 0, 1)
	AddTriangle(Surface, 0, 3, 2)
	AddTriangle(Surface, 2, 1, 0)
	;front
	Surface = CreateSurface(Mesh)
	AddVertex(Surface, -0.5,  0.5, 0.5, 0, 0)
	AddVertex(Surface,  0.5,  0.5, 0.5, 1, 0)
	AddVertex(Surface,  0.5, -0.5, 0.5, 1, 1)
	AddVertex(Surface, -0.5, -0.5, 0.5, 0, 1)
	AddTriangle(Surface, 0, 3, 2)
	AddTriangle(Surface, 2, 1, 0)
	;back
	Surface = CreateSurface(Mesh)
	AddVertex(Surface, -0.5,  0.5, -0.5, 0, 0)
	AddVertex(Surface,  0.5,  0.5, -0.5, 1, 0)
	AddVertex(Surface,  0.5, -0.5, -0.5, 1, 1)
	AddVertex(Surface, -0.5, -0.5, -0.5, 0, 1)
	AddTriangle(Surface, 0, 1, 2)
	AddTriangle(Surface, 2, 3, 0)
	;left
	Surface = CreateSurface(Mesh)
	AddVertex(Surface, -0.5,  0.5, -0.5, 0, 0)
	AddVertex(Surface, -0.5,  0.5,  0.5, 1, 0)
	AddVertex(Surface, -0.5, -0.5,  0.5, 1, 1)
	AddVertex(Surface, -0.5, -0.5, -0.5, 0, 1)
	AddTriangle(Surface, 0, 3, 2)
	AddTriangle(Surface, 2, 1, 0)
	;right
	Surface = CreateSurface(Mesh)
	AddVertex(Surface, 0.5,  0.5, -0.5, 0, 0)
	AddVertex(Surface, 0.5,  0.5,  0.5, 1, 0)
	AddVertex(Surface, 0.5, -0.5,  0.5, 1, 1)
	AddVertex(Surface, 0.5, -0.5, -0.5, 0, 1)
	AddTriangle(Surface, 0, 1, 2)
	AddTriangle(Surface, 2, 3, 0)
	
	ScaleMesh(Mesh, SizeX, SizeY, SizeZ)
	UpdateNormals(Mesh)
	Return Mesh
End Function

Graphics3D(640, 480, 16, 2)
SetBuffer(BackBuffer())

Camera = CreateCamera()
PositionEntity(Camera, 0, 0, -3)

Cube = CreateCube2()

Repeat
	TurnEntity(Cube, 1, 1, 1)

	RenderWorld()
	Flip()
Until KeyDown(1)

End
ЗЫ
Почему так быстро регистрация пропадает? Каждые пять минут приходицца заного логиницца.
(Offline)
 
Ответить с цитированием
Старый 24.01.2007, 15:04   #17
Черный крыс
 
Сообщений: n/a
Re: Частичное текстурирование примитива.

2 Хроно....ИМХО ты скажи зачем тебе это надо??? Просто если у каждого кубика разбить каждую сторону на сюрфейсы....то после 50-ти таких кубов блиц начнет неслабо тормозить.... - это слабая сторона блитца....многие наоборот стараются все что можно - обьеденить в один сюрфейс...
 
Ответить с цитированием
Старый 24.01.2007, 16:27   #18
Chrono Syndrome
 
Сообщений: n/a
Re: Частичное текстурирование примитива.

ИМХО ты скажи зачем тебе это надо???
Ну, допустим, мне нужна такая сцена: куб, грани которого меняют цвет при наведении на них курсора...

2Platon: Спасибо. Но на самом деле все, как выяснилось, много проще (PB + mmEngine) :
Macro CreateSide()
*S = CreateSurface_(*Cube)
AddVertex_(*S, -1, 1, -1, 0, 0)
AddVertex_(*S, 1, 1, -1, 1, 0)
AddVertex_(*S, 1, -1, -1, 1, 1)
AddVertex_(*S, -1, -1, -1, 0, 1)
AddTriangle_(*S, 0, 1, 2)
AddTriangle_(*S, 0, 2, 3)
EndMacro
 
Procedure Create6SurfCube(Parent = #Null)
Define *Cube = CreateMesh_(Parent), *S, I
For I = 1 To 4
CreateSide()
RotateMesh_(*Cube, 0, 90, 0)
Next I
RotateMesh_(*Cube, 90, 0, 0)
For I = 1 To 2
CreateSide()
RotateMesh_(*Cube, 180, 0, 0)
Next I
ProcedureReturn *Cube
EndProcedure
 
Ответить с цитированием
Старый 24.01.2007, 17:28   #19
Черный крыс
 
Сообщений: n/a
Так есть способ гораздо проще....перевернуть куб по нормали - и вот тебе окантовка...можно покрасить в любой цвет.

Вот тебе код программного создания окантовки....

Function Createcontur(ent,scon#=0)
If scon=0 scon#=(MeshDepth(ent)+MeshWidth(ent)+MeshHeight(en t))/400
invmesh=CopyMesh(ent,ent)
FlipMesh invmesh
EntityFX invmesh,1
EntityColor invmesh,0,0,0
;EntityTexture invmesh,black,0,0
For j=1 To CountSurfaces(invmesh)
surf = GetSurface(invmesh,j)
surf2= GetSurface(ent,j)
For i=0 To CountVertices(surf)-1
VertexCoords surf,i,VertexX(surf2,i)+scon*VertexNX(surf2,i),Ver texY(surf2,i)+scon*VertexNY(surf2,i),VertexZ(surf2 ,i)+scon*VertexNZ(surf2,i)
Next
Next
Return invmesh
End Function
 
Ответить с цитированием
Старый 24.01.2007, 18:52   #20
Chrono Syndrome
 
Сообщений: n/a
Re: Частичное текстурирование примитива.

Вот тебе код программного создания окантовки....
Спасибо, конечно, но мой вариант мне нравиться больше ...
 
Ответить с цитированием
Старый 24.01.2007, 22:44   #21
Chrono Syndrome
 
Сообщений: n/a
Re: Частичное текстурирование примитива.

Так... Тут у меня еще одна проблемка появилось: сгенерированный таким образом куб почему-то таинственным образом исчезает, если добавить в сцену источник света... Почему такое может происходить, кто знает ?
 
Ответить с цитированием
Старый 25.01.2007, 10:21   #22
Chrono Syndrome
 
Сообщений: n/a
Re: Частичное текстурирование примитива.

Все ясно - нормали. Вопрос снят.
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Частичное масштабирование изображения karry 3D-программирование 28 28.05.2009 18:33
текстурирование по Id полигона? Alex_Noc 3D-программирование 14 25.07.2008 17:13
Текстурирование ландшафта! (Полезно) moka Создание текстур 10 08.10.2007 18:45
Текстурирование ландшафтов:) BoB Создание текстур 6 23.11.2006 04:15
текстурирование выделеных полигонов hunt 3D Моделирование 8 04.08.2006 16:43


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


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