forum.boolean.name

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

HolyDel 24.07.2012 19:14

Ответ: axelynx
 
Вложений: 1
когда доделаю солнышко - будет новая демка, покрасивше (и по-тормознее).
Вложение 17223

думаю прикрутить lod bias, вот только пока не определюсь на какую ступеньку иерархии ее засунуть.

по идее ето должно быть вообще при рендере сцены.
типа рендерим некачественно (например для отражений, или блума).

Цитата:

И зря.
То же видео (скорее всего... у меня Ivy Bridge) - нормальный фпс в Rage, Skyrim, Borderlands, Mirror's Edge... Настройки качества не самые высокие, конечно, но средние или выше средних.

69 ФПС при максимальной нагрузке (2.25 мегатриса), когда астероиды вдалеке - 400+
Видео: Intel HD4000
ну как. обычно интеловские карточки с оглом особо не дружат. такчто остается только радоваться что все работает :)

Код:

scene->SetLodBias(float lod_bias)
- понятно будет, как считаете?

moka 24.07.2012 19:25

Ответ: axelynx
 
А вкратце что такое LoD Bias?

Будут ли подобные настройки на объект тоже? Как включить или отключить его?
->EnableLodBias()
? Или передавая нулевое значение в LodBias тоже отключит и т.п.?

ARA 24.07.2012 19:34

Ответ: axelynx
 
Вложений: 1
Цитата:

Сообщение от MoKa (Сообщение 234130)
А вкратце что такое LoD Bias?

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

Приятная мелочь, что приложение отображается сразу на двух мониторах (3200 х 1080)

FPS: 215-500
Geforce GTX470

HolyDel 24.07.2012 19:45

Ответ: axelynx
 
ну как бы определенный уровень лодов есть всегда.

по умолчанию 1-ца. получаем картинку какую и задумывали расставляя лоды ентитям.
если больше 1-цы получаем менее детальную картинку.
если меньше 1-цы получаем более детальную картинку.

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

на объект - наверное лишнее. ибо мы лоды итак задаем на объект.

ARENSHI, а как ты скрин снял? у меня почему то только фрапсом снимаются скрины с полноэкранного режима.

ARA 24.07.2012 20:01

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

Сообщение от HolyDel (Сообщение 234136)
ARENSHI, а как ты скрин снял? у меня почему то только фрапсом снимаются скрины с полноэкранного режима.

У меня кнопка Принтскрин не хочет вообще ничего скринить.
Делаю: Shft + PrtSc
збс

SBJoker 24.07.2012 20:32

Ответ: axelynx
 
Вложений: 1
Хм вобщем фпс разный, и чтоб им мерятся надо фиксированную камеру делать.
фпс 250-500 когда астероиды близко и видны почти все.

HolyDel 25.07.2012 00:33

Ответ: axelynx
 
вот еще видео:
http://www.youtube.com/watch?v=GpiKb8xOWWM

4yBa4Ok 25.07.2012 11:03

Ответ: axelynx
 
100-300фпс когда ты в них летаешь
GT 440

Nex 25.07.2012 11:54

Ответ: axelynx
 
130-150 fps в куче астероидов.

MiXaeL 25.07.2012 19:56

Ответ: axelynx
 
ФПС 700-400 в астероидах, правда включены глобальные настройки на 16xCSAA и прочее, выключать было лень.
Fireframe сажает фпс в 3 раза примерно, непорядок.
Видео GTX 470

pozitiffcat 25.07.2012 23:09

Ответ: axelynx
 
374 fps, 647 dips (1920x1080) из далека
100 fps, 350 dips внутри
Intel E3300, Nvidia GT240

HolyDel 26.07.2012 01:40

Ответ: axelynx
 
всем спасибо за тесты!
вы очень мне этим помогаете, парни!

вот новая демка:
http://www.likosoft.com/download/4/

в ней - ctrl - включает / выключает более высокий уровень лодов для блума

z / x меняет общий уровень лодов. Z - увеличивает, X - уменьшает.

space - включает / выключает вращение

MiXaeL 26.07.2012 05:33

Ответ: axelynx
 
Ну как-то так (все та же GTX 470)




Реквестирую тег [spoiler]

pozitiffcat 26.07.2012 09:15

Ответ: axelynx
 
чета форум глючит то появляются сообщения то исчезают как будто их и не писал

pax 26.07.2012 09:41

Ответ: axelynx
 
Вложений: 1
http://shot.qip.ru/008vEN-1etSMyBPA/

http://shot.qip.ru/008vEN-2etSMyBPB/

i5-2500K

HolyDel 26.07.2012 09:50

Ответ: axelynx
 
pax, я так понял блума нет?

попробуй, пожалуйста, заменить содержимое файла Bloom2D.fs на:

Код:

uniform sampler2D diffuse;
       
in vec2 fragmentuv;
out vec4 color;

uniform float focal_distance;
uniform float focal_range;

uniform float zFar;
uniform float zNear;

void main(void)
{
    vec4 resultcolor = vec4(0);

    vec2 size = vec2(320.0f,180.0f);

    for(int i=-2;i<3;++i)
    {
        for(int j=-2;j<3;++j)
        {
            resultcolor += texture(diffuse,fragmentuv + (vec2(i,j) / size));
        }
    }
   
    resultcolor /=12.5f;

    color = resultcolor;
}


pax 26.07.2012 13:09

Ответ: axelynx
 
Вложений: 1
Теперь вроде нормально
http://shot.qip.ru/008vEN-2etSMyBPE/

HolyDel 04.08.2012 22:08

Ответ: axelynx
 
Вложений: 1
портировал на линукс (убунту).
в качестве IDE используется code::blocks
в качестве компилятора - gcc.

движок находится в so-шке.

для макоси тоже, пожалуй, по началу будет собираться на кодеблоксах порт.

HolyDel 05.08.2012 02:34

Ответ: axelynx
 
у кого есть убунта с карточкой поддерживающей opengl 3.
потестите демку с физикой плиз:
http://www.likosoft.com/download/9/

den 05.08.2012 13:43

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

Сообщение от HolyDel (Сообщение 235247)
у кого есть убунта с карточкой поддерживающей opengl 3.
потестите демку с физикой плиз:
http://www.likosoft.com/download/9/

а под 2.1 запилить не можешь? :(

и да:

Цитата:

denis@comp:~/Рабочий стол/ubuntu physics/bin/Release$ ./test_client ./test_client: error while loading shared libraries: /home/holydel/Documents/axelynx/bin/gcc/Linux32/Release/axelynx32.so: cannot open shared object file: No such file or directory
ссылка решает, но всё таки лучше нормально сделать))

HolyDel 05.08.2012 14:07

Ответ: axelynx
 
Код:

а под 2.1 запилить не можешь?
к сожалению - нет.
минимальная версия гл, на которой работает движок - 3.0 (часть функционала будет и на 2.1 работать, но ето извращение).

Цитата:

ссылка решает, но всё таки лучше нормально сделать))
блин. косяк :) а чо он абсолютный то путь до so-шки считает. как распространять статически слинкованную so-шку? никто не в курсе?

den 05.08.2012 14:40

Ответ: axelynx
 
статическая хз, но в есть глобальная переменная ld_library_path, в неё храняться пользовательские пути для библиотек (изначально она пуста). Тоесть можно в одной папке положить: библиотеку, бинарник, и скрипт который в ld_library_path устанавливает текущую папку (./) и запускает бинарник. Алсо лучше сделать более православно - кидать библиотеку в /usr/lib/, и бинарник её сам найдёт.

den 05.08.2012 15:39

Ответ: axelynx
 
компиляция динамических библиотек, линковка
про ld_library_path
годные статьи

wolfhound512 05.08.2012 19:43

Ответ: axelynx
 
Есть ли возможность самому создать и заполнить surface?

HolyDel 05.08.2012 21:39

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

Есть ли возможность самому создать и заполнить surface?
да.

Код:

Surface *user_surface = eng->CreateSurface(24,12);
user_surface->Lock();
user_surface->SetVertexPosition(i,i,i,i);
user_surface->SetTriangle(i,v1,v2,v3);
user_surface->UnLock();

вот здесь есть больше информации:
http://forum.boolean.name/showthread...305#post219305

Mhyhr 06.08.2012 13:57

Ответ: axelynx
 
axelynx_108.exe
Линупсоиды негодуют

Кстати как и у Den'a
Цитата:

andrew@***]$ ./test_client
bash: ./test_client: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
fedora 17

HolyDel 06.08.2012 14:03

Ответ: axelynx
 
axelynx_108.exe - это же проприетарная сборка под винду...

по ссылке http://www.likosoft.com/download/9/
качается демка под убунту. тока она без танцев с бубном не работает. я пока не знаю как решить проблему с этой so-шкой.

под линук я тоже планирую сделать проприетарную сборку. но не знаю как.

хочу чтобы можно было написать sudo apt-get install axelynx и оно бы проинсталило и кодеблоксы, и темплейт(или даже мастер) для них и сам движок.

pozitiffcat 06.08.2012 17:48

Ответ: axelynx
 
сошки нужно линковать как обычную библиотеку, и тогда работает, в линуксе (gcc) компилятор экспортирует все символы в сошку, поэтому доступ к любой функции без танцев с бубном, только надо extern "C" делать

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

ЗЫ. либа должны быть гдето в /usr/local/lib, потом должна подхватиться средой командой в консоли ldconfig, тогда ее система сможет находить, а название должно начинаться на lib, например libAxelynx.so линкуется с параметром компилятора -lAxelynx

pozitiffcat 06.08.2012 17:54

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

Сообщение от Mhyhr (Сообщение 235320)
axelynx_108.exe
Линупсоиды негодуют

Кстати как и у Den'a

fedora 17

попробуй сначала ldconfig вызови в терминале

HolyDel 06.08.2012 19:24

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

сошки нужно линковать как обычную библиотеку
и каким образом? если у меня не создается библиотека импорта (*.a) при сборке so-шки?

Цитата:

только надо extern "C" делать
не хочу. похерится тогда вся моя красивая разбивка по неймспейсам.

Цитата:

Делаешь сошку с заголовочниками, выкладываешь, желательно под разные платформы процов, дальше линуксоиды разберуться.
хочу sudo apt-get install axelynx

Цитата:

ЗЫ. либа должны быть гдето в /usr/local/lib, потом должна подхватиться средой командой в консоли ldconfig, тогда ее система сможет находить, а название должно начинаться на lib, например libAxelynx.so линкуется с параметром компилятора -lAxelynx
я хочу таскать либу рядом с исполняемым файлом.

pozitiffcat 06.08.2012 20:11

Ответ: axelynx
 
в линуксе не нужна библиотека импорта. Ниче не похерится, у меня же работает, extern "C" это ни неймспейс а команда линкеру, как экспортировать символы
насчет sudo apt-get, делай deb пакет, у которого в скрипте запихать либу в /usr/local/lib сделать ldconfig и установить демо с инклюдами
>я хочу таскать либу рядом с исполняемым файлом.
тогда учи мат часть по линуксу. Вообще это реально, но так не делают

HolyDel 06.08.2012 20:34

Ответ: axelynx
 
Код:

Ниче не похерится, у меня же работает, extern "C" это ни неймспейс а команда линкеру, как экспортировать символы
блин, с extern "C" он сэкспортит:
somnamespace::somefunc() как somefunc
и somealsonamespace::somefunc() также как somefunc.

Цитата:

насчет sudo apt-get, делай deb пакет, у которого в скрипте запихать либу в /usr/local/lib сделать ldconfig и установить демо с инклюдами
а можно поподробнее? или хотябы кейворды по которым гуглить.

wolfhound512 06.08.2012 20:35

Ответ: axelynx
 
Еще пара вопросов:
1) Как удалить surface? delete?
2) Как изменить surface (изменить количество вершин/треуголников) ?
3) Если необходимо изменить геометрию объекта в сцене (добавить удалить вершины/треугольники), то нужно удалить entity, удалить surface, и создать все заново?
4) можно ли задавать параметры вершин списками,а не по одной?

HolyDel 06.08.2012 20:41

Ответ: axelynx
 
1) да.
2) пока никак. только удаляя прошлый сюрфейс и создавая новый.
3) сейчас - да. вообще это должно свестись только к изменению сюрфейса.
4) нет.

в версии 1.085 все ето будет )))

pozitiffcat 06.08.2012 20:43

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

Сообщение от HolyDel (Сообщение 235377)
а можно поподробнее? или хотябы кейворды по которым гуглить.

http://forum.linux.by/viewtopic.php?t=6565
http://takeworld.blogspot.com/2009/05/deb.html
кстати, а какая разница, как внутри символы выглядят? с extern "C" тебе ни о чем париться не надо, если работать по законам линуксу и класть so в соотв директорию

pax 06.08.2012 21:18

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

Сообщение от pozitiffcat (Сообщение 235380)
кстати, а какая разница, как внутри символы выглядят? с extern "C" тебе ни о чем париться не надо, если работать по законам линуксу и класть so в соотв директорию

вроде бы extern "C" экпсортирует только функции, но не классы

pozitiffcat 06.08.2012 21:33

Ответ: axelynx
 
да, но если получить указатель на созданный экз. класса внутри библиотеки, то все работает, т.к. gcc экспортирует принудительно все символы. А так да, я не уточнил, extern "C" работает для функций а не классов, классы вообще заворачивать не надо.

wolfhound512 06.08.2012 21:44

Ответ: axelynx
 
Нашел недочет в Wizard'е, он генерирует проект с пустыми определениями препроцессора, в результате чего не срабатывает такая конструкция:
Код:

#ifdef WIN32
  #ifdef AXELYNX_EXPORTS
      #define AXELYNX_API __declspec(dllexport)
  #else
      #define AXELYNX_API __declspec(dllimport)
  #endif
#else
  #define AXELYNX_API
#endif

что ведет к ошибкам типа:
Цитата:

axelynx32_d.lib(axelynx32_d.dll) : error LNK2005: "public: __thiscall axelynx::vec3::vec3(float,float,float)" (??0vec3@axelynx@@QAE@MMM@Z) уже определен в world.obj

HolyDel 06.08.2012 22:10

Ответ: axelynx
 
wolfhound512, там проблема не с дефайнами. они правильные. для пользовательского кода с динмаической линковкой они и должны быть пустыми.

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

Цитата:

да, но если получить указатель на созданный экз. класса внутри библиотеки, то все работает, т.к. gcc экспортирует принудительно все символы. А так да, я не уточнил, extern "C" работает для функций а не классов, классы вообще заворачивать не надо.
я еще раз говорю. мне не нужен extern "C". мне нужны классы, перегрузка, неймспейсы, шаблоны. мне нужны плюсы, а не си. я не вижу разницы будет ли линкер использовать человеческие имена методов или декорированные. от пользователя это скрыто.

pozitiffcat 06.08.2012 22:26

Ответ: axelynx
 
мучийся

wolfhound512 08.08.2012 21:32

Ответ: axelynx
 
Еще пара вопросов:
1) Можно изменить направление камеры? Чтобы она смотрела не в -Z, а в +Z? Так как-то привычнее.
2) Попробовал решить п.1 следующим образом:
Код:

axelynx::Pivot* body = _scene->AddPivot();
_camera = _scene->AddCamera();
_camera->SetParent( body );
_camera->Turn( 0, 180, 0 );

И двигать пивот, а не камеру. Но при движении пивота камера почему-то не двигается.
3) SetRotate() и SetMousePos() не работают.

HolyDel 08.08.2012 22:00

Ответ: axelynx
 
спасибо за тестирование :)

Цитата:

1) Можно изменить направление камеры? Чтобы она смотрела не в -Z, а в +Z? Так как-то привычнее.
ну можно добавить такой функционал, да.

Цитата:

И двигать пивот, а не камеру. Но при движении пивота камера почему-то не двигается.
это косяк от чрезмерной оптимизации. его я тоже поправил.
хотя тут вылезли другие косяки связанные с родительской привязкой камеры.

Цитата:

3) SetRotate() и SetMousePos() не работают.
в сурсах работают. и предыдущие твои замечания я тоже пофиксил.

на этой неделе соберу сборку 1.085

den 09.08.2012 15:22

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

./test_client: symbol lookup error: /home/holydel/Documents/axelynx/bin/gcc/Linux32/Release/axelynx32.so: undefined symbol: sem_post
:(...
Цитата:

glxinfo|grep "OpenGL version"
OpenGL version string: 3.3.0 NVIDIA 270.41.06
opengl тот...
Цитата:

ldd test_client
linux-gate.so.1 => (0xb76ec000)
/home/holydel/Documents/axelynx/bin/gcc/Linux32/Release/axelynx32.so (0xb63bb000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb6247000)
libGL.so.1 => /usr/lib/nvidia-current/libGL.so.1 (0xb6178000)
libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xb605d000)
libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb5f72000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb5f4c000)
libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb5f2e000)
/lib/ld-linux.so.2 (0xb76ed000)
libnvidia-tls.so.270.41.06 => /usr/lib/nvidia-current/tls/libnvidia-tls.so.270.41.06 (0xb5f2b000)
libnvidia-glcore.so.270.41.06 => /usr/lib/nvidia-current/libnvidia-glcore.so.270.41.06 (0xb4809000)
libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xb47fa000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb47f6000)
libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xb47dd000)
libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xb47d8000)
libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xb47d2000)
и все либы на месте...
видюха: GeForce 9600 GT

pozitiffcat 09.08.2012 16:24

Ответ: axelynx
 
из сорцов собирал?
похоже что в собраной либе нет кое чего из инклудов

den 09.08.2012 16:38

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

Сообщение от pozitiffcat (Сообщение 235798)
из сорцов собирал?
похоже что в собраной либе нет кое чего из инклудов

нет, скачал архив с бинарником и soшкой

выход strace
execve("./test_client", ["./test_client"], [/* 40 vars */]) = 0
brk(0) = 0x92b2000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb777e000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/home/holydel/Documents/axelynx/bin/gcc/Linux32/Release/axelynx32.so", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\3\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0 \226\r\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=3840056, ...}) = 0
mmap2(NULL, 20112056, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb644f000
mmap2(0xb67f4000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3a4) = 0xb67f4000
mmap2(0xb67fa000, 16265912, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb67fa000
close(3) = 0
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=72935, ...}) = 0
mmap2(NULL, 72935, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb643d000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/i386-linux-gnu/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\2 20o\1\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1442372, ...}) = 0
mmap2(NULL, 1448456, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb62db000
mmap2(0xb6437000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15c) = 0xb6437000
mmap2(0xb643a000, 10760, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb643a000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/usr/lib/nvidia-current/libGL.so.1", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`\ n\3\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=781540, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb62da000
mmap2(NULL, 842432, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb620c000
mmap2(0xb62ad000, 122880, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xa1) = 0xb62ad000
mmap2(0xb62cb000, 60096, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb62cb000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/usr/lib/i386-linux-gnu/libX11.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0 \0 \21\1\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=1151776, ...}) = 0
mmap2(NULL, 1155828, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb60f1000
mprotect(0xb6207000, 4096, PROT_NONE) = 0
mmap2(0xb6208000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x116) = 0xb6208000
mmap2(0xb620b000, 756, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb620b000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/usr/lib/i386-linux-gnu/libstdc++.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0 \0@[\4\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=930244, ...}) = 0
mmap2(NULL, 960040, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6006000
mprotect(0xb60e4000, 4096, PROT_NONE) = 0
mmap2(0xb60e5000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xde) = 0xb60e5000
mmap2(0xb60ea000, 26152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb60ea000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/i386-linux-gnu/libm.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\2 604\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=149392, ...}) = 0
mmap2(NULL, 151680, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb5fe0000
mmap2(0xb6004000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x23) = 0xb6004000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/i386-linux-gnu/libgcc_s.so.1", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0P\ 37\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=116232, ...}) = 0
mmap2(NULL, 119344, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb5fc2000
mmap2(0xb5fde000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b) = 0xb5fde000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/usr/lib/nvidia-current/tls/libnvidia-tls.so.270.41.06", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\2 00\6\0\0004\0\0\0"..., 512) = 512
lseek(3, 3396, SEEK_SET) = 3396
read(3, "\4\0\0\0\20\0\0\0\1\0\0\0GNU\0\0\0\0\0\2\0\0\0\3\ 0\0\0c\0\0\0", 32) = 32
fstat64(3, {st_mode=S_IFREG|0644, st_size=4212, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb5fc1000
mmap2(NULL, 7872, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb5fbf000
mmap2(0xb5fc0000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0) = 0xb5fc0000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/usr/lib/nvidia-current/libnvidia-glcore.so.270.41.06", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0 \3145\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=24183572, ...}) = 0
mmap2(NULL, 24254944, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb489d000
mmap2(0xb5f52000, 376832, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16b4) = 0xb5f52000
mmap2(0xb5fae000, 68064, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb5fae000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/usr/lib/i386-linux-gnu/libXext.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\2 60%\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=55888, ...}) = 0
mmap2(NULL, 59092, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb488e000
mmap2(0xb489b000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xc) = 0xb489b000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/i386-linux-gnu/libdl.so.2", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@\ n\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=9736, ...}) = 0
mmap2(NULL, 12408, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb488a000
mmap2(0xb488c000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0xb488c000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/usr/lib/i386-linux-gnu/libxcb.so.1", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\2 60j\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=95700, ...}) = 0
mmap2(NULL, 98588, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb4871000
mmap2(0xb4888000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16) = 0xb4888000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/usr/lib/i386-linux-gnu/libXau.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\3 00\t\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=9536, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb4870000
mmap2(NULL, 12420, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb486c000
mmap2(0xb486e000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0xb486e000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/usr/lib/i386-linux-gnu/libXdmcp.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\2 40\f\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=17672, ...}) = 0
mmap2(NULL, 20544, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb4866000
mmap2(0xb486a000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3) = 0xb486a000
close(3) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb4865000
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb4864000
set_thread_area({entry_number:-1 -> 6, base_addr:0xb4865b60, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
mprotect(0xb486a000, 4096, PROT_READ) = 0
mprotect(0xb486e000, 4096, PROT_READ) = 0
mprotect(0xb4888000, 4096, PROT_READ) = 0
mprotect(0xb488c000, 4096, PROT_READ) = 0
mprotect(0xb489b000, 4096, PROT_READ) = 0
mprotect(0xb489d000, 23810048, PROT_READ|PROT_WRITE) = 0
mprotect(0xb489d000, 23810048, PROT_READ|PROT_EXEC) = 0
mprotect(0xb5fbf000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0xb5fbf000, 4096, PROT_READ|PROT_EXEC) = 0
mprotect(0xb5fde000, 4096, PROT_READ) = 0
mprotect(0xb6004000, 4096, PROT_READ) = 0
mprotect(0xb60e5000, 16384, PROT_READ) = 0
mprotect(0xb6208000, 4096, PROT_READ) = 0
mprotect(0xb620c000, 659456, PROT_READ|PROT_WRITE) = 0
mprotect(0xb620c000, 659456, PROT_READ|PROT_EXEC) = 0
mprotect(0xb6437000, 8192, PROT_READ) = 0
mprotect(0xb644f000, 3821568, PROT_READ|PROT_WRITE) = 0
writev(2, [{"./test_client", 13}, {": ", 2}, {"symbol lookup error", 19}, {": ", 2}, {"/home/holydel/Documents/axelynx/"..., 68}, {": ", 2}, {"undefined symbol: sem_post", 26}, {"", 0}, {"", 0}, {"\n", 1}], 10) = 133
exit_group(127) = ?


axelynx_log.htm
<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>application</title></head><body><h1>axelynx log file</h1><hr><h4>start date: ?</h4><hr><font color = green>Loading extension success:glActiveTexture
</font><br><font color = green>Loading extension success:glTexBuffer
</font><br><font color = green>Loading extension success:glTexImage2DMultisample
</font><br><font color = green>Loading extension success:glTexImage3D
</font><br><font color = green>Loading extension success:glTexSubImage3D
</font><br><font color = green>Loading extension success:glGetCompressedTexImage
</font><br><font color = green>Loading extension success:glCompressedTexImage1D
</font><br><font color = green>Loading extension success:glCompressedTexImage2D
</font><br><font color = green>Loading extension success:glCompressedTexImage3D
</font><br><font color = green>Loading extension success:glGenVertexArrays
</font><br><font color = green>Loading extension success:glDeleteVertexArrays
</font><br><font color = green>Loading extension success:glBindVertexArray
</font><br><font color = green>Loading extension success:glGenBuffers
</font><br><font color = green>Loading extension success:glDeleteBuffers
</font><br><font color = green>Loading extension success:glBindBuffer
</font><br><font color = green>Loading extension success:glBufferData
</font><br><font color = green>Loading extension success:glBufferSubData
</font><br><font color = green>Loading extension success:glMapBuffer
</font><br><font color = green>Loading extension success:glUnmapBuffer
</font><br><font color = green>Loading extension success:glCreateProgram
</font><br><font color = green>Loading extension success:glDeleteProgram
</font><br><font color = green>Loading extension success:glLinkProgram
</font><br><font color = green>Loading extension success:glValidateProgram
</font><br><font color = green>Loading extension success:glUseProgram
</font><br><font color = green>Loading extension success:glGetProgramiv
</font><br><font color = green>Loading extension success:glGetProgramInfoLog
</font><br><font color = green>Loading extension success:glCreateShader
</font><br><font color = green>Loading extension success:glDeleteShader
</font><br><font color = green>Loading extension success:glShaderSource
</font><br><font color = green>Loading extension success:glCompileShader
</font><br><font color = green>Loading extension success:glAttachShader
</font><br><font color = green>Loading extension success:glDetachShader
</font><br><font color = green>Loading extension success:glGetShaderiv
</font><br><font color = green>Loading extension success:glGetShaderInfoLog
</font><br><font color = green>Loading extension success:glGetProgramBinary
</font><br><font color = green>Loading extension success:glProgramBinary
</font><br><font color = green>Loading extension success:glProgramParameteri
</font><br><font color = green>Loading extension success:glGetAttribLocation
</font><br><font color = green>Loading extension success:glBindAttribLocation
</font><br><font color = green>Loading extension success:glVertexAttribPointer
</font><br><font color = green>Loading extension success:glEnableVertexAttribArray
</font><br><font color = green>Loading extension success:glDisableVertexAttribArray
</font><br><font color = green>Loading extension success:glVertexAttribDivisor
</font><br><font color = green>Loading extension success:glGetUniformLocation
</font><br><font color = green>Loading extension success:glUniformMatrix3fv
</font><br><font color = green>Loading extension success:glUniformMatrix4fv
</font><br><font color = green>Loading extension success:glUniform1i
</font><br><font color = green>Loading extension success:glUniform1fv
</font><br><font color = green>Loading extension success:glUniform2fv
</font><br><font color = green>Loading extension success:glUniform3fv
</font><br><font color = green>Loading extension success:glUniform4fv
</font><br><font color = green>Loading extension success:glUniformMatrix3x2fv
</font><br><font color = green>Loading extension success:glGetActiveUniformsiv
</font><br><font color = green>Loading extension success:glGetActiveUniformName
</font><br><font color = green>Loading extension success:glGetUniformIndices
</font><br><font color = green>Loading extension success:glGetUniformBlockIndex
</font><br><font color = green>Loading extension success:glUniformBlockBinding
</font><br><font color = green>Loading extension success:glBindBufferRange
</font><br><font color = green>Loading extension success:glBindBufferBase
</font><br><font color = green>Loading extension success:glGetActiveUniformBlockiv
</font><br><font color = green>Loading extension success:glGetActiveUniformBlockName
</font><br><font color = green>Loading extension success:glBindFramebuffer
</font><br><font color = green>Loading extension success:glDeleteFramebuffers
</font><br><font color = green>Loading extension success:glGenFramebuffers
</font><br><font color = green>Loading extension success:glCheckFramebufferStatus
</font><br><font color = green>Loading extension success:glFramebufferTexture
</font><br><font color = green>Loading extension success:glFramebufferTexture3D
</font><br><font color = green>Loading extension success:glFramebufferTexture2D
</font><br><font color = green>Loading extension success:glDrawBuffers
</font><br><font color = green>Loading extension success:glDrawArraysInstanced
</font><br><font color = green>Loading extension success:glDrawElementsInstanced
</font><br><font color = green>Loading extension success:glDrawRangeElements
</font><br><font color = green>Loading extension success:glClampColor
</font><br><font color = green>Loading extension success:glGenerateMipmap
</font><br><font color = green>Loading extension success:glBlendEquation
</font><br><font color = green>Loading extension success:glBlendEquationSeparate
</font><br><font color = green>Loading extension success:glBlendFuncSeparate
</font><br><font color = green>Loading extension success:glUseProgramStages
</font><br><font color = green>Loading extension success:glActiveShaderProgram
</font><br><font color = green>Loading extension success:glCreateShaderProgramv
</font><br><font color = green>Loading extension success:glBindProgramPipeline
</font><br><font color = green>Loading extension success:glDeleteProgramPipelines
</font><br><font color = green>Loading extension success:glGenProgramPipelines
</font><br><font color = green>Loading extension success:glIsProgramPipeline
</font><br><font color = green>Loading extension success:glProgramParameteri
</font><br><font color = green>Loading extension success:glGetProgramPipelineiv
</font><br><font color = green>Loading extension success:glValidateProgramPipeline
</font><br><font color = green>Loading extension success:glGetProgramPipelineInfoLog
</font><br><font color = green>Loading extension success:glProgramUniform1i
</font><br><font color = green>Loading extension success:glProgramUniform2i
</font><br><font color = green>Loading extension success:glProgramUniform3i
</font><br><font color = green>Loading extension success:glProgramUniform4i
</font><br><font color = green>Loading extension success:glProgramUniform1ui
</font><br><font color = green>Loading extension success:glProgramUniform2ui
</font><br><font color = green>Loading extension success:glProgramUniform3ui
</font><br><font color = green>Loading extension success:glProgramUniform4ui
</font><br><font color = green>Loading extension success:glProgramUniform1f
</font><br><font color = green>Loading extension success:glProgramUniform2f
</font><br><font color = green>Loading extension success:glProgramUniform3f
</font><br><font color = green>Loading extension success:glProgramUniform4f
</font><br><font color = green>Loading extension success:glProgramUniform1d
</font><br><font color = green>Loading extension success:glProgramUniform2d
</font><br><font color = green>Loading extension success:glProgramUniform3d
</font><br><font color = green>Loading extension success:glProgramUniform4d
</font><br><font color = green>Loading extension success:glProgramUniform1iv
</font><br><font color = green>Loading extension success:glProgramUniform2iv
</font><br><font color = green>Loading extension success:glProgramUniform3iv
</font><br><font color = green>Loading extension success:glProgramUniform4iv
</font><br><font color = green>Loading extension success:glProgramUniform1uiv
</font><br><font color = green>Loading extension success:glProgramUniform2uiv
</font><br><font color = green>Loading extension success:glProgramUniform3uiv
</font><br><font color = green>Loading extension success:glProgramUniform4uiv
</font><br><font color = green>Loading extension success:glProgramUniform1fv
</font><br><font color = green>Loading extension success:glProgramUniform2fv
</font><br><font color = green>Loading extension success:glProgramUniform3fv
</font><br><font color = green>Loading extension success:glProgramUniform4fv
</font><br><font color = green>Loading extension success:glProgramUniform1dv
</font><br><font color = green>Loading extension success:glProgramUniform2dv
</font><br><font color = green>Loading extension success:glProgramUniform3dv
</font><br><font color = green>Loading extension success:glProgramUniform4dv
</font><br><font color = green>Loading extension success:glProgramUniformMatrix2fv
</font><br><font color = green>Loading extension success:glProgramUniformMatrix3fv
</font><br><font color = green>Loading extension success:glProgramUniformMatrix4fv
</font><br><font color = green>Loading extension success:glProgramUniformMatrix2dv
</font><br><font color = green>Loading extension success:glProgramUniformMatrix3dv
</font><br><font color = green>Loading extension success:glProgramUniformMatrix4dv
</font><br><font color = green>Loading extension success:glProgramUniformMatrix2x3fv
</font><br><font color = green>Loading extension success:glProgramUniformMatrix3x2fv
</font><br><font color = green>Loading extension success:glProgramUniformMatrix2x4fv
</font><br><font color = green>Loading extension success:glProgramUniformMatrix4x2fv
</font><br><font color = green>Loading extension success:glProgramUniformMatrix3x4fv
</font><br><font color = green>Loading extension success:glProgramUniformMatrix4x3fv
</font><br><font color = green>Loading extension success:glProgramUniformMatrix2x3dv
</font><br><font color = green>Loading extension success:glProgramUniformMatrix3x2dv
</font><br><font color = green>Loading extension success:glProgramUniformMatrix2x4dv
</font><br><font color = green>Loading extension success:glProgramUniformMatrix4x2dv
</font><br><font color = green>Loading extension success:glProgramUniformMatrix3x4dv
</font><br><font color = green>Loading extension success:glProgramUniformMatrix4x3dv
</font><br><font color = green>Loading extension success:glXSwapInterval
</font><br><table border = 1 <caption>videocard info</caption><tr><td>Vendor</td><td>ATI Technologies Inc.</td></tr><td>Renderer</td><td>AMD Radeon HD 6800M Series</td></tr><td>Driver version</td><td>3.3.11627 Core Profile Context</td></tr><td>glsl compiler</td><td>4.20</td></tr></table>

pozitiffcat 09.08.2012 16:40

Ответ: axelynx
 
Очень похоже на то что я сказал... инклуды 1.08 версии а бинарник 1.07
axelynx-у лучше знать

HolyDel 09.08.2012 19:35

Ответ: axelynx
 
бинарник тоже 1.08
пока хз что за фигня.

судя по логам все работает
хотя вру. лог от моей карточки.
судя по всему не хватает каких-то зависимостей. странно.

wolfhound512 09.08.2012 22:21

Ответ: axelynx
 
Поймал какой-то странный глюк.
Есть код управления камерой, который выполняется в цикле:
Код:

        float speed = deltatime * 10;
        _camera->Move(        (axelynx::KeyDown('D') - axelynx::KeyDown('A')) * speed,
                                        (axelynx::KeyDown('Q') - axelynx::KeyDown('Z')) * speed,
                                        (axelynx::KeyDown('S') - axelynx::KeyDown('W')) * speed );

        static int x = axelynx::MouseX(), y = axelynx::MouseY();
        _camera->Turn(        (axelynx::MouseY() - y) * speed,
                                        (axelynx::MouseX() - x) * speed,
                                        0 );
        x = axelynx::MouseX(), y = axelynx::MouseY();

если в конец дописать одну строку
Код:

_camera->GetPosition();
то получаем черный экран. (должен быть кубик из семпла визарда, но вращая камеру его найти не удается)
Что еще более странно: если втсавить эту строку не в конец, а в начало, то все ок. Видимо "GetPosition()" как-то сказывается на положении камеры, а функции move и turn, возвращают все на место.

HolyDel 09.08.2012 22:32

Ответ: axelynx
 
этот глюк исправлен в версии 1.085.

он связан с пересчетом view матрицы камеры.
когда мы вызываем GetPosition() он кэширует матрицу трансформации и сбрасывает флаг измененности. Из-за этого оно не работает.
Теперь матрица трансформации камеры считается иначе (один раз за рендер камеры), поэтому камеру теперь нельзя двигать в функциях-событиях, типа OnRender.

в 1.08 версии можно просто делать:
Код:

_camera->GetPosition(false);
т.е. брать локальные координаты

HolyDel 09.08.2012 23:51

Ответ: axelynx
 
вот сборка с новой версией:
http://www.likosoft.com/download/11/

менять правостороннюю / левростороннюю систему координат можно в
Код:

camera->Projection(fov,aspect,near,far,right_handle_system)
последним параметром должно быть true для правосторонней системы, и false для левосторонней.

den 09.08.2012 23:52

Ответ: axelynx
 
HolyDel, можешь дать исходники примера под линукс? Движка и демки. Обещаю не передавать третьим лицам, сразу после компиляции (удачной или нет) удалю.

HolyDel 10.08.2012 01:07

Ответ: axelynx
 
Den, могу дать тебе доступ к свн-ке на чтение.

могу, и архив собрать, но ето мутронее.

den 10.08.2012 01:12

Ответ: axelynx
 
блин почему не git)
ладно давай, от меня гуглопочта требуется?

HolyDel 10.08.2012 01:15

Ответ: axelynx
 
любая почта. либо, если зареган на ассембле - то ник там.

Цитата:

блин почему не git)
на ассембле тока свн. + под виндой есть удобный тортойс

den 10.08.2012 01:18

Ответ: axelynx
 
отправил в личку

HolyDel 10.08.2012 01:26

Ответ: axelynx
 
по новой сборке и вопросам wolfhound512

Цитата:

2) Как изменить surface (изменить количество вершин/треуголников) ?
Код:

surface->Resize(count_trinagles,count_vertices);
Цитата:

3) Если необходимо изменить геометрию объекта в сцене (добавить удалить вершины/треугольники), то нужно удалить entity, удалить surface, и создать все заново?
Код:

ent->SetGeometry(new_geometry);
Цитата:

4) можно ли задавать параметры вершин списками,а не по одной?
Код:

SetVerticesPositions(int start_index, int count, const vec3* position) =0;
SetVerticesNormals(int start_index, int count, const vec3* normal) =0;
SetVerticesTangents(int start_index, int count, const vec3* tangent) =0;
SetVerticesTexCoords(int start_index, int count, const vec2* uv, int layer = 0) =0;
SetVerticesColors(int start_index, int count, const vec4* color) =0;

Цитата:

1) Можно изменить направление камеры? Чтобы она смотрела не в -Z, а в +Z? Так как-то привычнее.
Код:

camera->Projection(fov, aspect, znear, zfar,ST_LEFT_HANDLE);
Цитата:

2) Попробовал решить п.1 следующим образом:

axelynx::Pivot* body = _scene->AddPivot();
_camera = _scene->AddCamera();
_camera->SetParent( body );
_camera->Turn( 0, 180, 0 );
И двигать пивот, а не камеру. Но при движении пивота камера почему-то не двигается.
теперь будет двигаться. но с повротом камеры все равно пока какая-то фигня.
Цитата:

3) SetRotate() и SetMousePos() не работают.
теперь работают

jimon 10.08.2012 01:34

Ответ: axelynx
 
Вложений: 1
HolyDel
Давай меряцо, решил написать тест на 4к кубиков, 420 моих фпс против 365 твоих.

Редактор мой не сильно расчитан на 4к нодов (привет qml, точнее пока, скоро руками рендер делать буду), ибо казуалочкам хватает под 1к объектов, но пережили. В render pipeline пришлось макросами включать насильное кеширование всех стейтов, в обычных сценах оно не сильно влияет (там по разнообразнее всё же), а тут достаточно каждый дип устанавливать шейдер и VAO и уже вместо 420 фпс получаем всего 60, втф нвидиа, втф.

ps. s0.bin - вот и все 4096 объектов сцены, запечены сразу, но все model, model * view, model * view * prj матрички считаются, те 12k умножений матриц на кадр

HolyDel 10.08.2012 01:41

Ответ: axelynx
 
давай :)
выведи плиз в заголовок окна фпс (или еще как нибудь).

твоя демка запускается под вайном в убунте. но я не могу тут запустить фрапс ((

jimon 10.08.2012 01:56

Ответ: axelynx
 
Вложений: 1
Цитата:

Сообщение от HolyDel (Сообщение 235867)
давай :)
выведи плиз в заголовок окна фпс (или еще как нибудь).

твоя демка запускается под вайном в убунте. но я не могу тут запустить фрапс ((

вывожу фпс в консоль приложения раз в 360 кадров

...
без фрапса пиковый рекорд - 513 фпс, средний стал 460-470

HolyDel 10.08.2012 02:06

Ответ: axelynx
 
ubuntu 12.04
i7 2.4GHz
6850M

axelynx - 200
твое - 300

win7 64 bit
i3 2.1 GHz
intel hd 2000

axelynx - 16
твое - 20

win7 64 bit
i7 2600K 3.4Ghz
geforce 460 gt

axelynx (EntityCost) - 760
axelynx (InstancedEntityCost) - 3130
твое - 690

pax 10.08.2012 07:20

Ответ: axelynx
 
Объединяйтесь! пишите вместе двигло, порвите всех нафиг!

HolyDel 10.08.2012 12:11

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

вот и все 4096 объектов сцены, запечены сразу, но все model, model * view, model * view * prj матрички считаются, те 12k умножений матриц на кадр
однако в таком случае ты не можешь менять кубам блендинг например.
это все таки не EntityCost :) скорее InstancedEntityCost.
и да, ты для всей геометрии так делаешь?

jimon 10.08.2012 12:35

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

Сообщение от HolyDel (Сообщение 235887)
однако в таком случае ты не можешь менять кубам блендинг например.
это все таки не EntityCost :) скорее InstancedEntityCost.
и да, ты для всей геометрии так делаешь?

ну а где можно менять блендинг то ? в udk или cry engine тебе понадобится как минимум переназначить материал, у меня тоже можно переназначить материал в реалтайме, придется заставлять потом двиг ворошить очередь рендера, но менять можно :) а блиц-way где всё можно менять с ходу - это явно не залог производительности

у меня вся геометрия (вообще вся), это 1 вбо, я посчитал что больше 10 метров геометрии мне особо и не надо, дип происходит с offset-ом в этом vbo (все заранее печется в vao если надо)

всё же это EntityCost, в тесте я 4096 раз продублировал asset_transform и asset_surface, когда в одном экземпляре остались только texture, material, geometry

HolyDel 10.08.2012 13:12

Ответ: axelynx
 
и все таки - ты для всей геометрии так делаешь?

множишь вершины на матрицу на процессоре?


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

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