forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Проекты C++ (http://forum.boolean.name/forumdisplay.php?f=56)
-   -   C3D Engine (http://forum.boolean.name/showthread.php?t=16433)

pozitiffcat 09.06.2012 17:06

Ответ: C3D Engine
 
Понятно... конечно странная фигня... у меня Win7 x86, Nvidia - такого глюка нет, специально сейчас проверил...

pozitiffcat 10.06.2012 01:31

Ответ: C3D Engine
 
ППЦ я не понимаю почему такая задержка
HolyDel:
В ядре:
сначала вызывается scene->draw();
в сцене лежит std::vector<CNode*> _nodes; //это список объектов для отрисовки
кратко, что делает CScene::draw()
Код:

...............
        glm::mat4 m_view = camera()->matrix_view();//один раз за фрейм получаем матрицу вида
        _frustum->CalculateFrustum(m_view);//считаем фрутсум
        for(int i=-1;++i<_nodes.size();)//проходим по всем нодам (ентитям) (этот метод цикла быстрей итераторного)
        {
                CNode* curnode = _nodes[i];//берем 1 раз за итерацию объект массива (так быстрей)
                if(curnode->vbo()!=NULL){//если есть геометрия
                        glm::vec4 cur_pos = curnode->position(true);//определяем позицию (4 столбец из матрицы)
                        if(_frustum->CubeInFrustum(cur_pos.x,cur_pos.y,cur_pos.z,curnode->vbo()->box()))//эта строка вообще никак не влияет на скорость как ни странно
                                curnode->drawVBO(m_view); //рисуем геометрию
                }
        }
.........................
}

вот код CNode::drawVBO
Код:

void CNode::drawVBO(glm::mat4 &m_view)
{
        if(!_effect || !_visible) return;
        _effect->setWorldMatrixSemantic(matrix(true));//тут ничего страшного тупо передача в шейдер не должно тормозить
        _effect->setViewMatrixSemantic(m_view);
        _effect->setProjMatrixSemantic(APP->render()->projection());
        _effect->setTexture0Semantic(_texture);
        _shader_queue->bind();//тут пусто, это передача кастомных параметров в шейдер
        while(_effect->pass())//тут проходим по всем проходам, тоже ни чего мудреного проход один в шейдере
        {
                _vbo->drawBuffers();//рисуем буфферы на гапи
        }
        //_shader_queue->unbind();
}

код отрисовки буферов на гапи

Код:

if(_vbuffer && _ibuffer)
        {
                glBindBufferARB( GL_ARRAY_BUFFER_ARB, _vbuffer );
                glVertexPointer( 3, GL_FLOAT, 0, 0 );
                if(_nbuffer)
                {       
                        glBindBufferARB( GL_ARRAY_BUFFER_ARB, _nbuffer );
                        glNormalPointer(GL_FLOAT,0,0);
                }
                if(_tbuffer)
                {       
                        glBindBufferARB( GL_ARRAY_BUFFER_ARB, _tbuffer );
                        glTexCoordPointer( 2, GL_FLOAT, 0, 0 );
                }

                {
                        APP->render()->dips_up();
                        glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, _ibuffer);
                        glDrawElements(GL_TRIANGLES,_cnt_indices,GL_UNSIGNED_SHORT,0);
                        //glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, 0);
                }
        }

мля!! что тут может тормозить я не понимаю!! я даже бинды убирал, эффект от этого не поменялся.. у мня 4к кубов 40 фпс, axel 255!!! юнити 50, все остальное 80

HolyDel 10.06.2012 02:30

Ответ: C3D Engine
 
ты передаешь три матрицы. а я одну. и в шейдере их множишь получается (для каждой вершины) а я один раз, правда на цпу, так быстрее.

ты проверку на фрустум делаешь по боксу, а я по сфере, так быстрее.

ну и насчет сеток - у тебя один vbo/ibo на сцену, или 4096? у меня один, и у блица с хорсом тоже, за остальные не скажу. хотя это не так сильно влияет.

pozitiffcat 10.06.2012 02:43

Ответ: C3D Engine
 
спасибо что посмотрел код

ты передаешь три матрицы. а я одну. и в шейдере их множишь получается (для каждой вершины) а я один раз, правда на цпу, так быстрее.
я пробовал - дольше!
ты проверку на фрустум делаешь по боксу, а я по сфере, так быстрее.
имхо - меньше точность
неужели одного буффера хватит на кучу сложных объектов? O_o

один буфер на всё, дал прирост 5 фпс... ниочем

HolyDel 10.06.2012 02:47

Ответ: C3D Engine
 
нет. тут дело в том что объекты то одинаковые.

Цитата:

я пробовал - дольше!
странно. должно быть быстрее :) и это еще на кубах. а если будет на каких-нибудь хайполи модельках, да на каком нибудь интегрированном интеловском говнеце, то твой метод отрисовки сразу начнет очень сильно проигрывать.
ну и множить, надо понятное дело один раз.
т.е. viewproj считаем один раз и model на нее множим столько раз, сколько нод.

pozitiffcat 10.06.2012 02:53

Ответ: C3D Engine
 
т.е. viewproj считаем один раз и model на нее множим столько раз, сколько нод.
хм - не подумал... спасибо

upd: не дало результата... фпс остались такие же

HolyDel 10.06.2012 03:22

Ответ: C3D Engine
 
ну тогда хз ))
надо значит профайлером пройтись.

pozitiffcat 12.06.2012 02:30

Ответ: C3D Engine
 
УРААААААААА 233 FPS ксорс дает 95 на моем железе... Там с CG заморочки были и еще, тут кое какие сортировки сделал, чтоб один и тот же шейдер не биндить 4096 раз
400 человечков, с анимацией
4096 кубов

HolyDel 12.06.2012 12:17

Ответ: C3D Engine
 
во, респект! теперь давай выкладывай бинарники чтобы на разном железе потестить ))
анимаци костаня или морфная?

pozitiffcat 12.06.2012 15:29

Ответ: C3D Engine
 
анимация морфная, бинарники вечером выложу, там кое че подправить надо для интелектуальной сортировки по нескольким критериям, плагин для макса 2010 в комплекте, если от плагина сорцы надо, пиши. У меня плагин для макса любую анимацию в морф делает. Все преобразования на CPU идут через SSE2, так что быстро )))

pozitiffcat 12.06.2012 17:12

Ответ: C3D Engine
 
Скачать 134 билд.
Экспортер (забыл в zip положить)
400 анимированых человечков с 4096 кубами

moka 12.06.2012 20:31

Ответ: C3D Engine
 
С дружелюбностью у тебя конкретно проблемы.
Попросили бинарники для теста, а ты выложил кучу исходников, с bin папкой, где запуск любого exe не даёт ожидаемого..

pozitiffcat 12.06.2012 21:13

Ответ: C3D Engine
 
А, сорри...
http://rghost.ru/38625118

moka 12.06.2012 21:24

Ответ: C3D Engine
 
А фпс где смотреть?

Nex 12.06.2012 21:28

Ответ: C3D Engine
 
Цитата:

Сообщение от MoKa (Сообщение 230191)
А фпс где смотреть?

Fraps :-D

pozitiffcat 12.06.2012 21:35

Ответ: C3D Engine
 
Цитата:

Сообщение от MoKa (Сообщение 230191)
А фпс где смотреть?

я фрапсом пользуюсь... т.к. sprintf в демках будет отнимать лишнее время, чтобы отображать fps в них...

moka 12.06.2012 21:49

Ответ: C3D Engine
 
Ну раз в секунду менять заголовок окна, не съест и 1 фпс..

pozitiffcat 12.06.2012 23:48

Ответ: C3D Engine
 
БЛИН! гадский NVIDIA CG. Мне придется переписывать на GLSL... чтоб всякие тангенсы, бинормали передавать без костылей..., ну зато будет еще быстрей =)

HolyDel 13.06.2012 14:12

Ответ: C3D Engine
 
дружище, а ты можешь выложить отдельно 4096 кубов, отдельно 400 анимированных человечков?
и спецификацию файла бы, я может у себя в движке тоже реализую поддержку анимированных моделей твоего формата. тогда можно будет и на анимации померяться :)

pozitiffcat 13.06.2012 15:55

Ответ: C3D Engine
 
Хорошо только чуть позже, я тут завяз в дебрях GLSL, чуть изменятся функции движка, будет более гибко, CG выкинул. Как доделаю GLSL, изменю PDF с туторами, выложу новую версию с спецификацией формата, и сорцами для 3ds max SDK. Единственное что бесит, я пока не понял как реализовать.. например куб 8 вершин, но нормалей 12, как это реализовать я хз, если продублировать вершины, то трабла с анимацией возникнет, и некоторые модели отображаются с корявыми UV, и нормалями...

HolyDel 13.06.2012 15:59

Ответ: C3D Engine
 
если делаешь через glsl то обрати внимание на http://www.opengl.org/registry/specs...er_objects.txt.
http://steps3d.narod.ru/tutorials/se...r-objects.html

и откажись от такой удобно штуки как explicit vertex layout. она мало где поддерживается. на тех-же девайсах (кстати, зря ты на них внимания не хочешь обратить, имхо это более перспективное направление) оно не поддерживается, и даже Intel HD 3000 не держит.

pozitiffcat 13.06.2012 16:44

Ответ: C3D Engine
 
я затачиваю под GMA X4500 самая казуальная плата ))) сделал поддержку GLSL выпилил CG, осталось туторы поправить и готово ), Странно но производительность в 3 раза упала вычислил, что тормозит glDrawElements. Причем все буферы устанавливаются только 1 раз далее за все программу идет glDrawElements, но все равно скорость в 3 раза ниже чем было с CG, че за х?

HolyDel 13.06.2012 19:14

Ответ: C3D Engine
 
в чем то еще косяки. CG ето выше уровнем чем glsl. оно не может работать быстрее (ну если только как-то хитро шейдеры компилит)

pozitiffcat 13.06.2012 21:58

Ответ: C3D Engine
 
Короч я там матрицу считал modelviewproj из-за этого тормозило... а на CG эту матрицу я считал шейдером
УРААААААААААА скороссть еще выше 265 ФПС 4к кубов!

HolyDel 13.06.2012 22:00

Ответ: C3D Engine
 
ты ее считал шейдером для каждой вершины, дружище! на 65к вершинах ты бы понял что ето нехорошо.

вот тебе еще один бенчмарк:
http://axelynx.googlecode.com/files/...yBenchmark.zip

уже на тяжелую геометрию.

pozitiffcat 13.06.2012 22:22

Ответ: C3D Engine
 
я предоставил выбор и ты там сам решаешь перемножать в шейдере или в коде, короче в туторе написано.

jimon 13.06.2012 22:35

Ответ: C3D Engine
 

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

pozitiffcat 13.06.2012 22:49

Ответ: C3D Engine
 

мне кажется этого будет достаточно... модель + анимация, не в ущерб производительности
по 1к вершине да и докучи по 30 кадров, и каждая вершина лерпится на SSE2. Твой бенчмарк дал 300 фпс, под рукой нет хайполи модели... чтоб похожий тест сделать

HolyDel 13.06.2012 23:16

Ответ: C3D Engine
 
jimon, это синтетический тест. на цену ентити. понятно, что от реальной игровой ситуации далеко.

pozitiffcat 13.06.2012 23:16

Ответ: C3D Engine
 
БИЛД ВЕРСИИ 135
Спецификация формата
Архив с скомпилеными туторами
Экспортер для 2010 макса
PDF
Если ошибка, писать мне, что пишет консолька, железо, версия Windows, исходный код.
Там сейчас в консоле пишет GLSL error не обращайте внимания... если будет ошибка он напишет текст ошибки

moka 13.06.2012 23:29

Ответ: C3D Engine
 
"формат не измениться никогда" - ошибочная позиция.
Время идёт взгляды меняются..

Реквестируем скелетную анимацию!

pozitiffcat 13.06.2012 23:33

Ответ: C3D Engine
 
Цитата:

Сообщение от MoKa (Сообщение 230290)
"формат не измениться никогда" - ошибочная позиция.
Время идёт взгляды меняются..

Реквестируем скелетную анимацию!

будет что-то типа cg3d2 формата файла :) где уже будет контроль версий. Скелетка в далеком далеком будущем, т.к. там очень долго разбираться и оптимизировать, предыдущий опыт оказался не удачным, я так и не добился нормально-работающей анимации, так что пока морф... тем более морф ИМХО универсальней, что наляпал в максе - то и получится, не зависимо от модификаторов.

HolyDel 13.06.2012 23:44

Ответ: C3D Engine
 
морф дорого по памяти.
и не гибко. хоть и очень быстро.
время морфа прошло...

pozitiffcat 14.06.2012 00:06

Ответ: C3D Engine
 
Цитата:

Сообщение от HolyDel (Сообщение 230293)
морф дорого по памяти.
и не гибко. хоть и очень быстро.
время морфа прошло...

время нехватки памяти прошло,
у меня 1 морф хоть на 100500 одинаковых объектов может быть, это определяет движок по имени файла...

HolyDel 14.06.2012 00:16

Ответ: C3D Engine
 
смотри.
есть тысяча РАЗНЫХ моделей.
по тысяче вертексов.
по тысяче кадров на каждую.

это будет один миллиард вертексов.
при весе вертекса в 12 байт (три флоата) это будет чуть меньше 11,2 гигабайт данных.
впринципе две квадры должны справиться )))

та же история со скелеткой (допустим 50 костей на скелет, которые, кстати, хранятся в оперативке и счтаются на цпу, на гпу просто натягивается скелет)
50 (костей) * 1000 (кадров) * 64 (вес одной кости - матрица трансформации, можно еще оптимизировать) * 1000 (моделей) = 763 метра. намного меньше предыдущих 11,2 гигов.

pozitiffcat 14.06.2012 09:15

Ответ: C3D Engine
 
Как же старые добрые игрушки делали на морфной анимации? Не факт что одновременно ты будешь видеть все 1000 моделей с анимацией по 1000 кадров... я думаю в казуалках точно такого не будет.

Knightmare 14.06.2012 09:44

Ответ: C3D Engine
 
Цитата:

Сообщение от pozitiffcat (Сообщение 230313)
Как же старые добрые игрушки делали на морфной анимации? Не факт что одновременно ты будешь видеть все 1000 моделей с анимацией по 1000 кадров... я думаю в казуалках точно такого не будет.

В казуалках вообще 3D никуда не брякало. Там другие требования к графике.

pozitiffcat 14.06.2012 09:52

Ответ: C3D Engine
 
Цитата:

Сообщение от Knightmare (Сообщение 230315)
В казуалках вообще 3D никуда не брякало. Там другие требования к графике.

вот недавно играл в какие-то кубики-шарики, выполнены были в 3D... и там рожа периодически вылазила, анимация на ней была морфная...

Knightmare 14.06.2012 10:06

Ответ: C3D Engine
 
Недавно играл вот в такое:

Мне теперь делать игры в монохроме?
Казуальщина предполагает яркую, сочную графику, приятную для глаза и с высокой детализацией. В 3D такое сделать нереально сложно, да и нафиг никому не нужно, все делается в 2D. А там в реалиях десктопов проблем вообще нет, в реалиях мобильных девайсов (основной рынок на сегодня) - свои заморочки, связанные как правило с малым объемом памяти.
Разработка 3D движка для казуальщины - игра в разработчика и пустая трата времени, а твое стремление копировать другие просто смишно (юзербар как бэ намекает).

pozitiffcat 14.06.2012 10:24

Ответ: C3D Engine
 

ладно победил, но я все равно буду делать, хотя бы для себя. :-D С юзер баром согласен, отстой, но пусть будет...

Knightmare 14.06.2012 10:34

Ответ: C3D Engine
 
Разговор был не о том, что не надо делать, а о том, что надо решать реальные задачи, даже если ты пишешь для себя. Иначе твой опыт будет бесполезен чуть более чем полностью. Если в один прекрасный день ты ВНЕЗАПНО решишь стать гамедевилопером и устроиться в соответствующую контору, от тебя потребуется с вероятностью 97% писать 2D под iOS/Android. Там все твое 3D никому не нужно, нужны другие скилы -> твой опыт бесполезен. Количество контор занимающихся хардкором/3D ММО исчезающе мало и даже если ты туда попадешь, твой "движок" не имеет ничего общего с реальностью -> твой опыт бесполезен.

pozitiffcat 14.06.2012 10:51

Ответ: C3D Engine
 
Это правда. 2D движков и так море, тем более нормальный 2D двиг можно самому за пол недели написать, и не интересно. Я приобрел опыт в оптимизации приложений под c++, тоже не плохо... из всего можно извлеч плюсы...

Knightmare 14.06.2012 10:56

Ответ: C3D Engine
 
Цитата:

Сообщение от pozitiffcat (Сообщение 230321)
2D движков и так море, тем более нормальный 2D двиг можно самому за пол недели написать, и не интересно.

Я на вскидку не могу назвать ни одного нормального 2D движка. За полнеели ты напишешь тормозное говно, приспособленное к жизни только на десктопах -> никому не нужное и не применимое в боевых условиях.

Цитата:

Сообщение от pozitiffcat (Сообщение 230321)
Я приобрел опыт в оптимизации приложений под c++, тоже не плохо... из всего можно извлеч плюсы...

Нарисовать 4К кубиков на десктопе это вообще никакой опыт оптимизации. Опыт оптимизации можно получить только в реально сложных боевых задачах, а не лабая примеры на коленке.

pozitiffcat 14.06.2012 17:30

Ответ: C3D Engine
 
BUILD 136 (14.06.2012)
Туториал по освещению (под номером 5) - в этом туториале я показываю как можно завернуть хэндлы объектов в классы и использовать их
Функции для передачи параметров напрямую в шейдер (не автопараметры)
Логирование в файл
Исправлены трансформации нормалей в экспортере
Экспортер в комплекте
Юзербар теперь не такой упоротый)))
скачать
Tutorial

Проверьте на утечку памяти пожалуйста. Дома на NVIDIA GT240 Windows 7 x86, память не убегает, на работе Windows 7 x86 GMA X4500, кушает 500 кб в минуту

pozitiffcat 14.06.2012 23:11

Ответ: C3D Engine
 
Прикрутил интуитивное определение на чем анимировать.
Я добавил видео, в котором показываю, как работает normal mapping с динамичным освещением.
http://youtu.be/_5GUE0yL4cc

pozitiffcat 16.06.2012 13:37

Ответ: C3D Engine
 
Заметил такую штуку: если анимировать модель на говноинтеле X4500, то не важно на GPU анимируешь или на CPU FPS одинаковый - вывод: отсой
BUILD 139 (16.06.2012)
[*]Туториал по нормал мапам
[*]Плоскость отсеченияне глючит с масштабируемыми объектами
[*]Исправлены некоторые глюки в ядре
[*]Добавлены стандартные имена tangents, modelview, model_normal
[*]Все шейдерные переменные присваиваются и расчитываются ТОЛЬКО если имя присутствует в шейдере

скачать
Tutorial

SBJoker 16.06.2012 16:22

Ответ: C3D Engine
 
Демки из этого поста ->
tutorial № 1 - ~10k fps
tutorial № 2 - 1115 fps (всё в кадре)
tutorial № 3 - ~6900 fps (всё в кадре)
tutorial № 4 - ~4270 fps (всё в кадре)
tutorial № 6 - ~2050 fps (всё в кадре)
tutorial № 7 - ~7k fps (всё в кадре)

pozitiffcat 16.06.2012 21:31

Ответ: C3D Engine
 
Супер! Спасибо что потестил. Мне это очень важно

pozitiffcat 11.07.2012 13:30

Ответ: C3D Engine
 
Ура! Завел под Андроидом свой движок. Пришлось кучу переписывать. Теперь интерфейс ООПшный. Возможность скомпилировать на SDL - это всякие WinCE, Symbian, и т.д.
Свой формат текстур. В комплекте конвертер. Перетаскиваете на него текстуру и она конвертится в понятный движку формат, старые текстуры удалять.
Как доведу до ума сделаю внятную инструкцию - выложу версию.

HolyDel 11.07.2012 13:46

Ответ: C3D Engine
 
под андроид на ES 1.0 или 2.0?

pozitiffcat 11.07.2012 14:12

Ответ: C3D Engine
 
GLES 2.0

pozitiffcat 11.07.2012 14:40

Ответ: C3D Engine
 
HolyDel, будешь портировать учти, что там много заморочек с шейдерами, например нельзя int привести к float. Короче код должен быть строго по спецификации. вместо in out, varying, и attribue. Хотя может это у меня на LG Optimus P500 так... и что бы не тащить jpeg png и т.д. лучше делать свой формат текстур...

HolyDel 11.07.2012 14:57

Ответ: C3D Engine
 
Цитата:

вместо in out, varying, и attribue.
фигово.

ну будут значит ax_in
ax_out
которые в зависимости от ситуации будут или varying или out.

вообще респект тебе что завел это дело под андроид. у меня все руки не доходят.
кстати, ты на яве ето делал или на НДК?

pozitiffcat 11.07.2012 15:03

Ответ: C3D Engine
 
Я это делал на НДК. По другому не портировать сишный код. Там тока запуск главной функции на яве. А вообще это ппц геморойное дело, лучше на ранних стадиях начинать портировать, пока не трудно что то переделать в движке ИМХО. Кстати на планшете шейдеры не рисуют объекты почему-то вечером буду разбираться, если че кину инфу... а на телефоне все ок. Даже плавная анимация ))))
P.S. мм я компилял для android 2.3.3 а на планшеье 4.0.3 в этом дело....

HolyDel 11.07.2012 15:25

Ответ: C3D Engine
 
а у них разве нет обратной совместимости?

pozitiffcat 11.07.2012 17:35

Ответ: C3D Engine
 
Теоретически должно быть. Но я не раз натыкался на то что при скачивании игры пишут например не выше 2.3.3 версии... хз, копаться надо

pozitiffcat 11.07.2012 22:59

Ответ: C3D Engine
 
HolyDel - учти что нужно индексы хранить unsigned short!!! Не все девайсы работают с 32 битными индексами!! только щас исправил.. теперь и на планшете работает.. ппц такая мелоч, а так долго глюк искал. Кстати странно, на планшете видео mali 400 что мощнее чем на телефоне adreno 200, а телефон тянет 32 битную адресацию. Мистика.

HolyDel 12.07.2012 00:41

Ответ: C3D Engine
 
16 битные индекса быстрее на многих платформах.
поэтому по возможности я храню в них.


жаль что ты не хочешь объединить усилия, авось хороший продукт бы получился )))

jimon 12.07.2012 01:33

Ответ: C3D Engine
 
Скоро вы узнаете что там нет MRT, только на тегровских чипах :)

pozitiffcat 12.07.2012 09:07

Ответ: C3D Engine
 
Цитата:

Скоро вы узнаете что там нет MRT, только на тегровских чипах
Знаем..


HolyDel - я бы не против писать в команде, но хочется сначала написать свой отдельный продукт. Кстати а че ты не используешь glm? Там можно во всю SSE2 использовать... на десктопных машинках значительно увеличивается скорость, особенно когда считается MV матрица с парентами для кучи объектов...

HolyDel 12.07.2012 09:34

Ответ: C3D Engine
 
Цитата:

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

pozitiffcat 12.07.2012 10:22

Ответ: C3D Engine
 
буст очень активно используется в огре.. а glm можно урезать, не очень то он и громоздкий. Можешь в либу скомпилять под разные платформы... и потянуть всего 2 хедера

HolyDel 12.07.2012 10:26

Ответ: C3D Engine
 
из всего буста в огре используются потоки и дата/время насколько я знаю.

Цитата:

а glm можно урезать, не очень то он и громоздкий. Можешь в либу скомпилять под разные платформы...
это шаблонная хрень, которая будет компилиться при каждом ребилде клиентского проекта. движок может собираться долго - клиентский код должен собираться быстро. ну это лично мое мнение. Пишется сложная, тяжелая либа, но пользователю отдается красивый, стройный, легкий и однозначный интерфейс. с glm так не получится. ну и математики писать не так уж и много. в любом случае это дело вкуса - все равно что спрашивать: почему тебе больше нравятся блондинки- например.

pozitiffcat 12.07.2012 11:32

Ответ: C3D Engine
 
Заметил, что GLES, нельзя в шейдере делать так
color += light[i]
А нужно делать так
color += light[0]
спеременной в качестве параметра элемента массива не работает почему-то, думал что как то связано с unsigned, но в GLES в спецификации ни че не нашел по этому поводу... странно...


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

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