Сообщения на форуме пользователя Andrey (7 стр.)
Дорогостоящая операция glBindVertexArray | 25 сен. 2012 | 10:45 | #4 |
---|
Sergio
IOS ?
Меряешь непосредственно на начале вызова функции и в конце? 1 замер на кадр? делай среднее по 10 кадрам, интересна логика драйвера внутри. Может что закэширует и т.д.
>Есть варианты это улучшить?
Сокращать число разнообразных форматов вершин, ну это естественно костыль. Вообще драйвер наверняка шейдер пере собирает, делает валидацию на предмет совпадения формата и работы с семантиками вершин внутри шейдера и т.д.
WhiteFox
> А разве она не на прямки из драйвера дергается? Тут скорее дрово-писатели накосячили, если замеры точны.
Да, это драйверописатели.
IOS ?
Меряешь непосредственно на начале вызова функции и в конце? 1 замер на кадр? делай среднее по 10 кадрам, интересна логика драйвера внутри. Может что закэширует и т.д.
>Есть варианты это улучшить?
Сокращать число разнообразных форматов вершин, ну это естественно костыль. Вообще драйвер наверняка шейдер пере собирает, делает валидацию на предмет совпадения формата и работы с семантиками вершин внутри шейдера и т.д.
WhiteFox
> А разве она не на прямки из драйвера дергается? Тут скорее дрово-писатели накосячили, если замеры точны.
Да, это драйверописатели.
OpenGL ES 3.0: поехали... | 25 сен. 2012 | 9:40 | #42 |
---|
Ну что качнем глянем что там.
.::jimon::.
в 10 посту много чего про драйвер IOS писал. Где видел код? глянуть бы одним глазком.
.::jimon::.
в 10 посту много чего про драйвер IOS писал. Где видел код? глянуть бы одним глазком.
Правка: 25 сен. 2012 9:41
[3D] Silent Island | 25 сен. 2012 | 9:30 | #91 |
---|
yanGCC
Демка когда будет?
Демка когда будет?
Глюки с рендером-в-текстуру | 19 сен. 2012 | 10:51 | #2 |
---|
Nikopol
Ну самая простая проверка. Берем ShadowMap из DirectX SDK, shadowmap.cpp, строка 1251:, меняем размер на 1024, 2048, работает ???
вообще очень странно. Как игры с тенями идут там ?
Ну самая простая проверка. Берем ShadowMap из DirectX SDK, shadowmap.cpp, строка 1251:
#define SHADOWMAP_SIZE 512
вообще очень странно. Как игры с тенями идут там ?
Чем открыть формат 3D ? | 18 сен. 2012 | 17:06 | #18 |
---|
geo432
Windows Texture Viewer
http://developer.nvidia.com/sites/default/files/devcenter/tools/f… wer_v089b.rar
Windows Texture Viewer
http://developer.nvidia.com/sites/default/files/devcenter/tools/f… wer_v089b.rar
Не отображает обьекты на ноутбуке | 12 сен. 2012 | 14:58 | #4 |
---|
vitalik
как обычно DxDebug тебе все скажет.
> то есть в вершинном стояло 2.0 а пиксельном 3.0 переправил вершинный на 3.0 и
> все заработало) и собственно вопрос: непонятно почему у меня все ок, а на
> другой машине не ок?
Потому что если ps_3_0 то и vs_2_0 должен быть, где-то это должно быть в MSDN/DirectX SDK. На другой машине стоять может карта nVidia, возможно эта ошибка на ней не проявляется, так же как и распространенные проблемы с DrawIndexedPrimitive
http://www.gamedev.ru/code/forum/?id=148800&page=2#m15
как обычно DxDebug тебе все скажет.
> то есть в вершинном стояло 2.0 а пиксельном 3.0 переправил вершинный на 3.0 и
> все заработало) и собственно вопрос: непонятно почему у меня все ок, а на
> другой машине не ок?
Потому что если ps_3_0 то и vs_2_0 должен быть, где-то это должно быть в MSDN/DirectX SDK. На другой машине стоять может карта nVidia, возможно эта ошибка на ней не проявляется, так же как и распространенные проблемы с DrawIndexedPrimitive
http://www.gamedev.ru/code/forum/?id=148800&page=2#m15
Формирование матрицы вида. | 11 сен. 2012 | 10:28 | #1 |
---|
Gladiator
> 1. Понимая, что камера имеет свою систему координат.. Понимая как образованы
> вектора u,v,n. Объяснить почему матрица V равна
> ux uy uz dx
> vx vy vz dy
> nx ny nz dz
> 0 0 0 1
строки матрица 3x3(3 строки без последнего столбца) содержат 3 вектора образующие ортонормированную систему координат, она же содержит углы поворота точки вокруг 3 осей.
Формула поворота точки на угол:
http://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%B2%D0%BE%D1%80%D0%BE%D1%82
ее можно представить в матричном виде, а теперь добавь еще 2 поворота, т.к. матрицы можно перемножать, то получаем комбинированную матрицу поворота.
4 столбец это перемещение относительно начала координат.
Четвертая строка - перспективное преобразование, в матрице вида не используется.
>2. Объяснить почему (dx,dy,dz) = (-eye*u, -eye*v, -eye*n)
Потому что ты перемещаешься с учетом ориентации по 3 векторам, т.е. нельзя просто так поставить позицию в 4 столбец, не уверен что правильно объяснил.
> 1. Понимая, что камера имеет свою систему координат.. Понимая как образованы
> вектора u,v,n. Объяснить почему матрица V равна
> ux uy uz dx
> vx vy vz dy
> nx ny nz dz
> 0 0 0 1
строки матрица 3x3(3 строки без последнего столбца) содержат 3 вектора образующие ортонормированную систему координат, она же содержит углы поворота точки вокруг 3 осей.
Формула поворота точки на угол:
http://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%B2%D0%BE%D1%80%D0%BE%D1%82
ее можно представить в матричном виде, а теперь добавь еще 2 поворота, т.к. матрицы можно перемножать, то получаем комбинированную матрицу поворота.
4 столбец это перемещение относительно начала координат.
Четвертая строка - перспективное преобразование, в матрице вида не используется.
>2. Объяснить почему (dx,dy,dz) = (-eye*u, -eye*v, -eye*n)
Потому что ты перемещаешься с учетом ориентации по 3 векторам, т.е. нельзя просто так поставить позицию в 4 столбец, не уверен что правильно объяснил.
Матрицы, векторы, кватернионы бесплатная математическая библиотЭка vqm_math.h beta версия | 5 сен. 2012 | 23:50 | #26 |
---|
repeat
> Normalize требует небольшой оптимизации
>А если "rlen"==0? конец, приплыли. Деление на ноль = бесконечность! Нужно ввести и этот случай в нормализацию.
Ну для этого assert я привел как совет, далее нефиг нормализировать нулевой вектор, сверху не создавать такой вектор не инициализировать, создавать проверки при загрузке, и т.д. Перегружать математическую библиотеку этим не стоит.
>На практике бывает такое случится а потом весь >код перерываешь из-за какой-то функции.
скомпилил в дебаге увидел assert, проверил исходные данные поменял подход и.т.д.
> Normalize требует небольшой оптимизации
>А если "rlen"==0? конец, приплыли. Деление на ноль = бесконечность! Нужно ввести и этот случай в нормализацию.
Ну для этого assert я привел как совет, далее нефиг нормализировать нулевой вектор, сверху не создавать такой вектор не инициализировать, создавать проверки при загрузке, и т.д. Перегружать математическую библиотеку этим не стоит.
>На практике бывает такое случится а потом весь >код перерываешь из-за какой-то функции.
скомпилил в дебаге увидел assert, проверил исходные данные поменял подход и.т.д.
Матрицы, векторы, кватернионы бесплатная математическая библиотЭка vqm_math.h beta версия | 4 сен. 2012 | 23:55 | #18 |
---|
igumnov
Normalize требует небольшой оптимизации
Normalize требует небольшой оптимизации
float rlen = sqrtf(...); rlen = 1.0f / rlen;
Матрицы, векторы, кватернионы бесплатная математическая библиотЭка vqm_math.h beta версия | 2 сен. 2012 | 12:53 | #15 |
---|
igumnov
нету assert, нету__forceinline, нету const указателей.
Нафиг тут лезть в heap ? в стеке временно заведи переменные
нету assert, нету__forceinline, нету const указателей.
V3* Xaxis = new V3[sizeof(V3)/sizeof(*Xaxis[0])]; V3* Yaxis = new V3[sizeof(V3)/sizeof(*Yaxis[0])]; V3* Zaxis = new V3[sizeof(V3)/sizeof(*Zaxis[0])]; V3* buf = new V3[sizeof(V3)/sizeof(*Zaxis[0])];
Что показывают строки матрицы ? | 2 сен. 2012 | 12:46 | #5 |
---|
Gladiator
>Есть ли какой-то скрытый смысл тогда в строках при этом ?
В строках или столбцах( в зависимости от способа хранения в памяти) матрице вида хранятся вектора взаимно ортогональные вектора Right,Up,Dir образующие ортонормированную систему координат. По сути это матрица трансформации сцены относительно камеры. Вроде бы матрицу можно представить как линейную комбинацию векторов i,j,k(Right,Up,Dir), ведь векторное произведение двух других равно третьему или Векторное представление матрицы.
>Есть ли какой-то скрытый смысл тогда в строках при этом ?
В строках или столбцах( в зависимости от способа хранения в памяти) матрице вида хранятся вектора взаимно ортогональные вектора Right,Up,Dir образующие ортонормированную систему координат. По сути это матрица трансформации сцены относительно камеры. Вроде бы матрицу можно представить как линейную комбинацию векторов i,j,k(Right,Up,Dir), ведь векторное произведение двух других равно третьему или Векторное представление матрицы.
Почему Lua? | 31 авг. 2012 | 15:41 | #82 |
---|
Chaos_Optima
>я думал ты написал решение.
Исправил пост свой
Нету сейчас Visual C++ 2010, ждем RPGman
>я думал ты написал решение.
Исправил пост свой
Нету сейчас Visual C++ 2010, ждем RPGman
Почему Lua? | 31 авг. 2012 | 15:15 | #80 |
---|
Chaos_Optima
> скинь исходники я у себя хочу потестить
это твой тест! :) http://www.gamedev.ru/files/?id=81070
> скинь исходники я у себя хочу потестить
это твой тест! :) http://www.gamedev.ru/files/?id=81070
Почему Lua? | 31 авг. 2012 | 14:59 | #78 |
---|
Chaos_Optima
>Test1
AS: 1701 ms
Lua: 2012 ms
>LUA vs AS
AS: 5902 ms
Lua: 2158 ms
>Test1
AS: 1701 ms
Lua: 2012 ms
>LUA vs AS
AS: 5902 ms
В первом случае AS быстрее,
>немного переделал задачу. терь он более реальна что ли ))
во втором Lua быстрее. Второй случай более реальный, Lua порвал AangleScript ??
Правка: неверные результаты
Правка: 31 авг. 2012 15:40
Почему Lua? | 31 авг. 2012 | 13:12 | #68 |
---|
RPGman
> Плиз, потестите новый вариант.
В зависимости от запуска 296 или 312 мс. Intel Core i7 2600 - 3.4 ГГц
Я бы timeBeginPeriod(1) вызвал перед замером времени. Но лучше QPC под Windows сделал -бы, под POSIX посмотреть нужно разрешение gettimeofday.
> Плиз, потестите новый вариант.
В зависимости от запуска 296 или 312 мс. Intel Core i7 2600 - 3.4 ГГц
Я бы timeBeginPeriod(1) вызвал перед замером времени. Но лучше QPC под Windows сделал -бы, под POSIX посмотреть нужно разрешение gettimeofday.