forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Xors3D (http://forum.boolean.name/forumdisplay.php?f=126)
-   -   Xors3D (http://forum.boolean.name/showthread.php?t=6180)

HolyDel 08.09.2011 22:38

Ответ: Xors3D
 
SSE2 есть даже на ARM процессорах, братцы.

.Squid 08.09.2011 22:51

Ответ: Xors3D
 
Это к чему?
К тому же, если мне память не изменяет, то у ARM'a набор SIMD-команд называется NEON. А SSE - это SIMD у х86 и производных.

ffinder 08.09.2011 23:29

Ответ: Xors3D
 
если быть точнее на старых девайсах есть VPF (похоже на SSE, но слабее), а на новых - NEON (полный аналог SSE)

HolyDel 08.09.2011 23:40

Ответ: Xors3D
 
Цитата:

Это к чему?
это призыв быть современнее.

Hurrit 19.09.2011 21:40

Ответ: Xors3D
 
Цитата:

Сообщение от pozitiffcat (Сообщение 200878)
ты в dev c++ либу не подключишь.

слюшай, зачэм врэш, да? савсэм плахой чиловек ти, я прикручивал эту либу и к дев с++. только забыл как

pozitiffcat 21.09.2011 21:54

Ответ: Xors3D
 
Создаю 30 штук башен в буфер (менеджер), 100 штук спрайтов с альфой, 30 штук пауков, все это невидимо, и просто располагается на карте когда это необходимо, ну чтоб не грузить с винта или не копировать меш.
Так вот, когда игра запустилась у меня она выдает 120 fps, через 5 сек, я ниче не делаю, начинает давать 40, ставлю башенку 20 fps - проходит минута и fps подымается до 200, что за чудеса кто знает? Ни каких процессов не завершается в игре, ниче не меняется, а с fps происходят такие чудеса. Может кто сталкивался в своих проектах

pozitiffcat 21.09.2011 21:57

Ответ: Xors3D
 
Цитата:

Сообщение от Hurrit (Сообщение 202735)
слюшай, зачэм врэш, да? савсэм плахой чиловек ти, я прикручивал эту либу и к дев с++. только забыл как

ага только сконвертировать надо сначала в *.a

pozitiffcat 21.09.2011 22:03

Ответ: Xors3D
 
Цитата:

Сообщение от pozitiffcat (Сообщение 203012)
Создаю 30 штук башен в буфер (менеджер), 100 штук спрайтов с альфой, 30 штук пауков, все это невидимо, и просто располагается на карте когда это необходимо, ну чтоб не грузить с винта или не копировать меш.
Так вот, когда игра запустилась у меня она выдает 120 fps, через 5 сек, я ниче не делаю, начинает давать 40, ставлю башенку 20 fps - проходит минута и fps подымается до 200, что за чудеса кто знает? Ни каких процессов не завершается в игре, ниче не меняется, а с fps происходят такие чудеса. Может кто сталкивался в своих проектах

извиняюсь косяк нашел

Код:

void G::MoveWater()                                                                                                        //анимация движения воды
{
        int brush = xGetEntityBrush(water->getModel());                                        //получение текстуры воды для дальнейших манипуляций
        int tex = xGetBrushTexture(brush,0);
        Vector3* waterdata = (Vector3*)G::water->data;                                        //получить данные воды
        waterdata->x+=0.00002;                                                                                                //установка новых значений положения воды
        waterdata->y+=0.00010f;
        xPositionTexture(tex,waterdata->x,waterdata->y);                                //установить позицию текстуры воды
}

xGetEntityBrush тормозит, он у меня каждый раз получал текстуру воды чтобы двигать, теперь это делается 1 раз при инициализации

moka 21.09.2011 22:10

Ответ: Xors3D
 
В Xors3D есть же шейдера, используй смещение текстурных координат в вершинном буфере, это будет в 100500 раз быстрее, чем получение текстуры, и её "позиционирование". Тем более проще намного.

pozitiffcat 21.09.2011 23:32

Ответ: Xors3D
 
Цитата:

Сообщение от MoKa (Сообщение 203016)
В Xors3D есть же шейдера, используй смещение текстурных координат в вершинном буфере, это будет в 100500 раз быстрее, чем получение текстуры, и её "позиционирование". Тем более проще намного.

MoKa можешь разжевать? Я в шейдерах ваще лузер.

moka 22.09.2011 00:11

Ответ: Xors3D
 
Взять например простейший шейдер с текстурингом.
Вершинная функция:
Код:

struct vi {
  float4 position : POSITION0;
  float2 texcoords : TEXCOORD0;
};

void vs( in vi IN, out pi OUT ) {
  OUT.position        = mul(IN.position,worldviewproj);
  OUT.texcoords    = IN.texcoords;
}

Тут как видишь есть texcoords, это текстурные координаты. Заведи две переменные, float'ы и передавай их в шейдер. Прибавляй их в вершинном шейдере. Таким образом в пиксельном выборка будет делаться уже из обработанных.
Это шустрее, и реалтайм, тупо передав 2 флоата, уже влияет на отрисовку. Никаких процессорных и на видео действий не делается вообще.

Mr_F_ 22.09.2011 00:36

Ответ: Xors3D
 
Цитата:

используй смещение текстурных координат в вершинном буфере, это будет в 100500 раз быстрее, чем получение текстуры, и её "позиционирование". Тем более проще намного.
не знаю как сделано позиционирование на ФФП. не факт что шейдером будет быстрее (скорее всего одинаково).
ну и вряд ли проще - учитывая что на позиционирование есть готовая команда без надобности грузить шейдер.

moka 22.09.2011 00:43

Ответ: Xors3D
 
Ну в современных играх, всё имеет шейдеры на себе, и с наличием их, это будет быстрее. Тем более будет либо по шейдерно, либо пообъектно. А тут же, у нас потекстурно. Получается что текстура на всех объектах будет ехать..

.Squid 22.09.2011 01:34

Ответ: Xors3D
 
xGetEntityBrush создает новый браш. Это в документации указано.

pozitiffcat 22.09.2011 08:23

Ответ: Xors3D
 
Цитата:

Сообщение от .Squid (Сообщение 203040)
xGetEntityBrush создает новый браш. Это в документации указано.

спасибо .Squid я просто не читал, но потом сам допер до этого


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot