|
3D-программирование Вопросы, касающиеся программирования 3D мира |
21.03.2009, 21:48
|
#1
|
☭
Регистрация: 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)
|
|
Сообщение было полезно следующим пользователям:
|
|
21.03.2009, 22:36
|
#2
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Загрузка SBS
сортировки индексов так, чтобы максимальное число вершин попадало в TnL кеш.
|
Можно поподробней?
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
21.03.2009, 22:47
|
#3
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Загрузка SBS
можно. есть видеокарта, у нее есть процессор, который обрабатывает вершины. часто бывает так, что некоторые вершины надо обрабатывать несколько раз. Если к ней "привязан" не один треугольник. После обработки вершины (положения, освещения, скорее всего после обработки вершинным шейдером вообще) результат помещается в некий кеш - post - TnL кешом он называется. Так вот, если мы будем обрабатывать треугольники так, чтобы вершины были в кеше - то заново их рассчитывать не придется, что ускорит вывод
http://www.gamedev.ru/articles/?id=20124
Последний раз редактировалось HolyDel, 21.03.2009 в 22:59.
|
(Offline)
|
|
Эти 5 пользователя(ей) сказали Спасибо HolyDel за это полезное сообщение:
|
|
21.03.2009, 22:56
|
#4
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Загрузка SBS
Про кэш знал, про такой чуднОй способ оптимизации - нет. Спасибо.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 07:30.
|