Показать сообщение отдельно
Старый 21.03.2009, 21:48   #1
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Загрузка SBS

теоретически, SBS сюрфейсы могут работать быстрее, из-за сортировки индексов так, чтобы максимальное число вершин попадало в TnL кеш.

на практике я как таковой разницы в блице не заметил. у меня получалось выигрывать таким способом 10-20% в скорости.

Function LoadSBS(filename$)
	e =ReadFile(filename)
	m = CreateMesh()
	s = CreateSurface(m)
	
	chr_0 = ReadByte(e)
	chr_1 = ReadByte(e)
	chr_2 = ReadByte(e)
	chr_3 = ReadByte(e)
	chr_4 = ReadByte(e)
	chr_5 = ReadByte(e)
	
	fake0 = ReadInt(e)
	fake1 = ReadInt(e)
	fake2 = ReadInt(e)
	
	primtype = ReadInt(e)
	DebugLog primtype
	
	ci = ReadInt(e)
	cv = ReadInt(e)
	For i = 1 To ci/3
		i0 = ReadShort(e)
		i1 = ReadShort(e)
		i2 = ReadShort(e)
		
		AddTriangle(s,i0,i1,i2)
	Next
	
	For i = 1 To cv
		u# = ReadFloat(e)
		v# = ReadFloat(e)
		
		r = ReadFloat(e)
		g = ReadFloat(e)
		b = ReadFloat(e)
		a = ReadFloat(e)
		
		nx# = ReadFloat(e)
		ny# = ReadFloat(e)
		nz# = ReadFloat(e)
	
		x# = ReadFloat(e)
		y# = ReadFloat(e)
		z# = ReadFloat(e)
			
		AddVertex(s,x,y,z,u,v)
		VertexNormal(s,i-1,nx,ny,nz)
	Next
	
	RotateMesh m,-90,0,0
	DebugLog ci
	DebugLog cv
	CloseFile(e)
	Return m
End Function
http://likosoft.ucoz.ru/SBSloader.zip

Последний раз редактировалось HolyDel, 21.03.2009 в 22:12.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Main Cry (22.03.2009)