Показать сообщение отдельно
Старый 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)
 
Ответить с цитированием