Обновление ландшафта на вертексном шейдере.

Работа с 2D и 3D графикой, видео, звуком.

Модератор: Mikle

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Обновление ландшафта на вертексном шейдере.

Сообщение Mikle » 25.06.2006 (Вс) 13:45

Немного доделал LandScape, исправлена ф-ция RayIntersector, написал вертексный шейдер, теперь объем памяти, занимаемый вертексным буфером уменьшился вдвое, а скорость возрасла в 1.5 раза, по крайней мере на моей машине. Используется так же, как и предыдущий вариант. В планах сделать переменное число текстурных стадий - на шейдере это не проблема.
В комплект включил один модуль из SDK, вдруг у кого-то нет.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 26.06.2006 (Пн) 13:16

В предыдущем посту обновил приложение. Теперь ландшафт может содержать от нуля до четырех пар текстурных координат без изменения размера вертексного буфера. В методе Init в конце идут четыре Optional параметра - ScaleTex0, ScaleTex1 и т. д. Сколько значений вписать - столько стадий и будет. Шейдер теперь формируется самим классом и его не нужно держать в файле.
В комплекте идет пример с двумя стадиями и аналогичный ему пример на старом движке - old.exe. Просьба написать FPS в стартовой позиции того и другого вариантов. По идее там, где не поддерживается VS 1.0 должно быть медленнее, так как включается софт. вертекспроцессинг.
Результаты на Athlon64 3000+, GF6600:
old - 38, new - 57.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 26.06.2006 (Пн) 14:03

Athlon 1800+, GF5600U

old - 24, new - 10.
При этом видно, что отрабатывает ветка с D3DCREATE_HARDWARE_VERTEXPROCESSING.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 26.06.2006 (Пн) 14:08

GSerg
Говорили мне, что FX тормозят, но чтоб на столько... :roll:
Попробуй принудительно включить SoftWare T&L, интересно, что будет.
Видимо придется оставлять, как вариант, старый подход.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 26.06.2006 (Пн) 14:15

Однофигственно.
В полноэкранном режиме, кстати, счётчика fps нет.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 26.06.2006 (Пн) 14:24

GSerg

Однофигственно

Значит FX5600 обрабатывает вертексы не быстрее, чем софт. эмулятор...

В полноэкранном режиме, кстати, счётчика fps нет.

Потому, что счетчик на Label, а в FullScreen контролы не работают, можно сделать счетчик на D3DXFont.

Bonesnapper
Постоялец
Постоялец
 
Сообщения: 434
Зарегистрирован: 12.09.2004 (Вс) 15:39

Сообщение Bonesnapper » 26.06.2006 (Пн) 15:29

p43150 6800gt 1024
old -35
vs - 40

загрузка тока раза в 4 уменьшилась

AlexWIN32
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 16.06.2006 (Пт) 15:10

Сообщение AlexWIN32 » 26.06.2006 (Пн) 16:46

Привет,Майкл!!!
еше раз спасибо за предоставленые тобой примеры!!!

old-25
vs-10

ты не против ,если я использую твой пример в 3D Танках???

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 26.06.2006 (Пн) 18:49

AlexWIN32
Используй, конечно.
На каком железе такие результаты?

mad_Max
Бывалый
Бывалый
 
Сообщения: 203
Зарегистрирован: 15.09.2002 (Вс) 21:17
Откуда: Russia, Cherepovets

Сообщение mad_Max » 26.06.2006 (Пн) 22:51

Новый вариант рулит...
old - 39
vs - 68
Athlon64 3000+, Radeon X700 Pro

AlexWIN32
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 16.06.2006 (Пт) 15:10

Сообщение AlexWIN32 » 26.06.2006 (Пн) 23:03

NVIDIA GeForese FX 5200
Pentium 1400

спасибо)))

AlexWIN32
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 16.06.2006 (Пт) 15:10

Сообщение AlexWIN32 » 26.06.2006 (Пн) 23:07

Mikle

только не знаю я ,как на быстродействии скажется - ведь там еше и танки будут, и деревья - может посоветуешь чего-нибудь???

может создать меш ландшафта в каком-нибудь стороннем редакторе, загрузить его ,а потом загрузить в буфер все его вершины???(как в примере с танком, который ты мне дал)

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 28.06.2006 (Ср) 13:36

ну я думаю просто изменить детализацию ландшафта... В этот раз каждая точка отображаеться, а можно сделать как бы сглаживании при этом теряя качество(я думаю это не так важно) - чисто вариант
#define ROFL 0xDDDD

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 28.06.2006 (Ср) 14:03

CEL 2.42, GeForce 2 MX/MX 440 (не смейтесь, она офисная :))
old 14
vs 7


Вернуться в Мультимедиа

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 58

    TopList