GameDev.ru
/ GameDev.ru / Пользователи / Andrey / Сообщения на форуме пользователя Andrey (23 стр.)

Сообщения на форуме пользователя Andrey (23 стр.)

Разбор Id Tech 4, Doom 3 Source20 мар. 201210:15#226
NickGastovski
extern "C" void dllStartPlugin(void) throw()
{
  RenderDevice::m_Instance = new D3DDevice();
}
а так лучше:
extern "C" void dllStartPlugin(void) throw()
{
static D3DDevice d3dDevice;
  RenderDevice::m_Instance = &d3dDevice;
}
SNVampyre
> - при этом переключаться между ними всё равно не можем O_O
Все там круто переключается, текущему рендеру Release(а он внутри себя при правильном проектирвоании удалит буферы, текстуры, шейдеры, рендер таргеты ) новому Init и вперед... Я сделал - работает, но не просто сделать это правильно.
Ох чувствую сейчас начнется...
Render Programmer кто? что? как?18 мар. 201219:42#3
ps10n1ck
Есть еще люди которые занимаются поддержкой и разработкой графического движка то что перечислил Лис®©™ это меньше половины знаний, с такими знаниями движок они не  напишут и не доработают. Современный рендер программер должен знать скелетную анимацию систему частиц, экспорт данных из различный средств моделирования 3DS Max, Maya, а также много поточное  программирование, отличное знание как работает CPU,GPU, опыт оптимизации, опыт системного программирования (пригодится для реверс инженеринга) и т.д.
[D3D9] Асинхронная загрузка текстур12 мар. 201214:05#5
Executor
> заполняю данными
Это как происходит. Поподробнее объясни.
>ждёт пока зальётся текстура.
Ну это время нужно уменьшать. kas хорошую ссылку дал. Единственное решение это Async I/O
Нужна критика кода7 мар. 201215:17#48
war_zes
В том проекте не нужны и вредны не один из new/delete операторов. Переменные _engine, _currrender создать как static и вернуть их указатели. Не нужно туда всякие boost::shared_ptr и т.д. Проще писать лучше сразу.
Application не должен знать про типы Render'ов и про них самих. Пусть этим занимается движок. Суть Application это создать окно и вызвать инициализацию движка и в случае успеха запустить главный цикл движка.
Нужна помощь - буфер глубины для ShadowMap ( OpenGL )6 мар. 201215:00#5
SergArmy
>Проверил текстура заполняется правельно, все работает отлично до строчки( при отрисовки ):
> glTexParameteri ( GL_TEXTURE_2D, GL_TEXTURE_COMPARE_MODE, GL_COMPARE_R_TO_TEXTURE );
коменти тогда эти строки:
> directionalLight.LightShadowSetUp( currentProgram );

> RenderScene ( Camera, currentProgram );    //  отрисовка сцены с позиции наблюдателя
и если текстура все время заполняется корректно проблема в этих строках. Может где-то с текстурой что-то не так.
Сделал бы всю реализацию тени на шейдерах (шейдер глубины + кастер) C++ кода было бы меньше

Нужна помощь - буфер глубины для ShadowMap ( OpenGL )6 мар. 201211:15#1
SergArmy
>как узнать (может быть визуализовать) что находится в буфере глубины?
Сохранив текстуру результат работы FBO(glReadPixels) и потом посмотреть. Если текстура пустая или залита одним цветом(черным) нужно смотреть дальше по коду.
VBO + ATI2 мар. 201210:25#12
n-neo
>glBindBufferARB(GL_ARRAY_BUFFER_ARB,Points);
...
> glBindBufferARB(GL_ARRAY_BUFFER_ARB,Points1);
..
>glDrawArrays(GL_QUADS,0,(n-1)*(m-1)*12);
1) Попробуй без VBO, рисовать из памяти.(вместо nil поставишь указатели)
2) Пиши проще. Зачем буферы вершин и цветов разделил? храни все семантики в одном буфере. Разберись со смещениями. возможно не имеет отношения к проблеме но вместе с 3 пунктом
3) Не рисуй квадратами,  это хлам,  видеокарта оптимизирована для рисования треугольниками, попробуй переделать на GL_TRIANGLE_LIST/GL_TRIANGLE_STRIP. Наверное в ATI драйверах есть ошибки для старой функциональности. Не спроста в новых версиях OpenGL и OpenGL ES 1.x, OpenGL ES 2.0 этого нету.
Полезные ссылки (Обновлено 16.05.2011)1 мар. 201210:50#4
OpenGL Development on Linux
http://ogldev.atspace.co.uk/index.html
Думаю идеи подойдут и для других платформ.
[GLES] по разному работает шейдер28 фев. 201223:35#9
nen777w
а может без всяких заданий точностей? для начала оставь везде float, убери всякие mediump мне кажется не нужно им подсовывать всякие навороты, они еще компилятор и поддержку GLSL долго допиливать будут.
[opengl es 2.0] Простейший фрагментный шейдер.28 фев. 201216:55#7
glap
> > Не работает такой фрагментный шейдер:
> > Выдаёт GL_INVALID_OPERATION;
> Что это за бред? Кто выдает? Когда выдает? Что в логах компиляции/линковки
> программы?
поддерживаю Sergio

>Вот так всё работает идеально:
>FragColor = vec4(1, 0, 0, 1);
Конечно будет работать.
а ты из вершинного в пиксельный цвет передаешь? откуда туда цвет поступает? из семантики вершины? в качестве uniform ?или вообще ничего нету в вершинном? если последние то все понятно, возможно и не слинкуется...

Почему Джон Кармак использует OpenGL23 фев. 20121:18#118
VIP_Artemka
мдя... нафиг этот хлам в Rage ???? glColor4f, glShadeModel
судя по wglShareList они несколько контекстов создают и шарят их... Может и баги на стриминге из-за этого
SNVampyre
> В других OpenGL-играх такого нет.
Rage мне кажется самый технологичный проект под OpenGL.
OpenAL под линуксом. При долгой работе (более 8 часов) сручий звук.21 фев. 20129:43#61
SNVampyre
> Попробовал делать перезапуск контекста, не помогло :(
А если полностью пере инициализировать? или под перезапуск контекста это и есть?
OpenAL под линуксом. При долгой работе (более 8 часов) сручий звук.19 фев. 201212:41#52
SNVampyre
> #define ST_SOUND_BUFFERS_COUNT  1
> #define ST_SOUND_BUFFER_BLOCK  200000000
Не, у меня Linux нету, просто слежу решением проблемы, самому интересно.
OpenAL под линуксом. При долгой работе (более 8 часов) сручий звук.19 фев. 20121:27#47
SNVampyre
> Без стриминга звука эффект не уходит. Я же говорю, когда было простое
> воспроизведение звуков без какого-либо функционала, эффект наблюдался.
Да, увидел это утверждение в 15 посту, все таки нужно было проще выкладывать тест.
>Такого эффекта нет и с использованием SDL, кстати.
Ну а что в исходниках SDL использует для звука? OpenAL там точно нету. Может написать на форуме разработчиков Creative ? тут вроде можно попробовать
http://forums.creative.com/
stopkin
> Выводил openal через pulse и alsa - одинаковый дребезг.
Есть подозрение в ошибке в реализации OpenAL под Linux.
Через что еще можно попробовать вывести?
SNVampyre
Да и еще можно все-таки сделать минимальный тест без стриминга тупо буфер и проигрывать звук, примерно как у stopkin выложить его еще раз.
PhysX 3.xxx createConvexMesh, createTriangleMesh19 фев. 20121:13#6
k119_55524
>Получается между актёром и мешем надо создать Shape.
>Так вот Shape тоже моГно между актёрами разделить или он индивидуален?
Судя SDK я не нашел метода у PxActor и его наследников что-бы можно было добавить ему какой нибудь ранее созданный Shape, вместо создания нового.
Я создаю индивидуальный shape.
Возможно так и должно быть. Физическая сцена должна знать какой тип геометрической фигуры у какого-то актора и естественно параметры у нее индивидуальны,
а вот фигуру можно создать уже с ранее подготовленной геометрии т.е. из меша. Только вот что тебе даст общая фигура для всех? Если ты про производительность
то большего всего времени занимает  PxCooking::cookTriangleMesh, далее идет PxPhysics::createTriangleMesh на остальные вызовы типа PxPhysics::createRigidStatic и PxRigidStatic::createShape не стоит обращать внимание.
Попробуй сам еще SDK покапать может что-то и найдешь.

Следующие темы >>

2001—2012 © GameDev.ru — Разработка игр