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

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

Прошу Оценить Octree-дерево + столкновения29 июля 200519:01#5
All
Сделал обновление стало лучше управление мышью но в некоторых местах еще есть проходы  сквозь группу полигонов..
прошу еще раз оценить.
Сопаставление массивов констант для альфа-блендинга в OpenGL и Direct3D29 июля 200518:42#6
Mightimus
>Тебе не нужно два массива для DX только один, т.к. они будут идентичны
как так такое может, если некоторые значения из первого массива не входят в допустимые значения первого параметра метода SetRenderState я смотрел DirectX SDK
Прошу Оценить Octree-дерево + столкновения28 июля 200520:28#3
gvm
1)проверка столкновений только с полигонами листа. а FPS то отоброжается...
2)не хотел DirectInput'ом  загружать код.
3) еще надо дорабатывать...
4) это все потом
Организация буфферов (вершинны, текстур. коорд. ...) в движке DirectX9.28 июля 200519:30#6
frol
Привет!! у меня уже наверное появится данная проблема в узлах Octree дерева уже много будет буфферов ходь для Direct3D и OpenGL без разницы факт что будет частая смена...
Сопаставление массивов констант для альфа-блендинга в OpenGL и Direct3D28 июля 200519:16#4
Mightimus
дело в том что я пытаюсь сделать универсальный рендер
и поэтому хочу сделать так:
render -> BlendFunc(sfactor, dfactor);
где render это указатель интерфейс.
а конкретном рендере уже по по переданным параметрам будет выбиратся значения с массивов.
>Есть веть IDirect3DStateBlock9
поэтому вот эта вещь мне не поможет :(
мне нужно заполнить первый массив для Direct3D  по аналогии с OpenGL и со строгим соответсвием смысла и порядка следования констант.
Организация столкновений на основе Octree-дерева28 июля 200519:08#9
Uranius,  D.Rider
Спасибо всем у меня все получилось!!!я сделал проверку BBoх'а  камеры с полигонами узла. перед этим проверяю пересеклась ли камера с BBox'ом узла, только после этого с полигонами...
прошу заценить:
http://www.gamedev.ru/forum/?group=0&topic=18529
остальное обсуждение предлагаю продолжить в ветке форума ссылвка которой выше.
тема закрыта.
Прошу Оценить Octree-дерево + столкновения28 июля 200519:00#0
Привет всем!
Сделал я наконец Octree дерево.Также реализовал столкновения камеры с полигональной моделью.
вот ссылка:
часть 1: http://www.gamedev.ru/download/?id=2830
часть 2: http://www.gamedev.ru/download/?id=2831
Принимается любая критика(ну правда не грубая) пожеланя а это точно будет, улучшения и т.д.
Скажу сразу качество графики не очень, упор я делал на построения дерева и столкновений.
прошу если не сложно указать системные параметры компьютера на котором проводился тест текущий FPS наличие тормозов и т.д.
Демка сомпилирована на Visual C++ .Net используется OpenGL  в движке работает и с Direct3D
Используемые клавиши:
С - вкл/отк проверки столкновений;
F - вкл/отк пермешения камеры по оси 0Y;
O - смена рендера сцены прямой/через Octree для сравнения;
B - вкл/отк отрисовки узлов Octree - дерева (для отладки);
Показывается статистика выводиых полигонов, так и общее количество полигонов.
в файл setup.cfg в первой строчке указывается путь к файлу к зангружаемым сценам.
Для тех кто хочет протестировать с большим уровнем.
вот ссылка для большого уровня 69153 полигона:
Часть 1: http://www.gamedev.ru/download/?id=2826
Часть 2: http://www.gamedev.ru/download/?id=2829
Часть 3: http://www.gamedev.ru/download/?id=2832
Нужно скопировать содержимое в папку где исполняемый файл, и прописать путь к файлу с расширением *.lev
Спасибо всем заранее.
С уважением Андрей.

Правка: 21 дек. 2005 19:20

Сопаставление массивов констант для альфа-блендинга в OpenGL и Direct3D28 июля 200518:41#2
st0ke
>Вот так: SetRenderState (здесь я не помню что), D3DRS_SRCBLENDALPHA, D3DBLEND_SRCALPHA
>и SetRenderState (здесь я не помню что), D3DRS_DESTBLENDALPHA, D3DBLEND_INVSRCALPHA
дак тут все 9 параметров можно передавать т.е. не только вот эти что ты пересчислил:
D3DRS_SRCBLENDALPHA, D3DBLEND_SRCALPHA,  D3DRS_DESTBLENDALPHA, D3DBLEND_INVSRCALPHA.
но как заполнить первый массив до конца?
Странная проблема со смешанными массивами(glInterleavedArrays) в OpenGL28 июля 200518:34#4
Uranius
L00bis
Сделал я glVertexPointer:
glVertexPointer(3, GL_FLOAT, sizeof(Vector3D), array);
или:
glVertexPointer(3, GL_FLOAT, 0, array);
Ничего не помогает
Сопаставление массивов констант для альфа-блендинга в OpenGL и Direct3D27 июля 200520:39#0
Привет всем!!!

мне надо сопаставить константы для задания альфа функции для OpenGL и Direct3D
иными словами составить эквивалентный массивы и заполнить их поэлементо значениями констант соответсвующих API.Поясняю практически.В OpenGL есть функция

glBlendFunc
имеет 2 параметра
для них я создал массив
первый параметр:
//допустимые значения первого параметра функции glBlendFunc
static unsigned int sfactorArray[] = {  GL_ZERO, GL_ONE, GL_DST_COLOR,
                    GL_ONE_MINUS_DST_COLOR,
                    GL_SRC_ALPHA,
                    GL_ONE_MINUS_SRC_ALPHA,
                    GL_DST_ALPHA,
                    GL_ONE_MINUS_DST_ALPHA,
                    GL_SRC_ALPHA_SATURATE };
второй параметр:
//допустимые значения второго параметра функции glBlendFunc
static unsigned int dfactorArray[] = {  GL_ZERO, GL_ONE,
                        GL_SRC_COLOR,
                        GL_ONE_MINUS_SRC_COLOR,
                        GL_SRC_ALPHA,
                        GL_ONE_MINUS_SRC_ALPHA,
                        GL_DST_ALPHA,
                        GL_ONE_MINUS_DST_ALPHA
                    };
так теперь я хочу сделать аналогичный массив с такими же эквивалентным расположением констант для Direct3D.
Для заполнения массивов в Direct3D руководствовался вот этими структрурами из DirectX 9.0 SDK, и посмыслу и порядку следования попытался выбрать эквивалентные константы похожие на OpenGL.
для первого параметра вот этой структурой:
typedef enum _D3DRENDERSTATETYPE {
....//очень много полей...
} D3DRENDERSTATETYPE;
для второго параметра вот это структурой:
typedef enum _D3DBLEND {
    D3DBLEND_ZERO = 1,
    D3DBLEND_ONE = 2,
    D3DBLEND_SRCCOLOR = 3,
    D3DBLEND_INVSRCCOLOR = 4,
    D3DBLEND_SRCALPHA = 5,
    D3DBLEND_INVSRCALPHA = 6,
    D3DBLEND_DESTALPHA = 7,
    D3DBLEND_INVDESTALPHA = 8,
    D3DBLEND_DESTCOLOR = 9,
    D3DBLEND_INVDESTCOLOR = 10,
    D3DBLEND_SRCALPHASAT = 11,
    D3DBLEND_BOTHSRCALPHA = 12,
    D3DBLEND_BOTHINVSRCALPHA = 13,
    D3DBLEND_BLENDFACTOR = 14,
    D3DBLEND_INVBLENDFACTOR = 15,
    D3DBLEND_FORCE_DWORD = 0x7fffffff
} D3DBLEND;
только тогда для задания прозрачности стоит вызвать метод
SetRenderState с двумя параметрами надеюсь этол понятно.Итак вот 2 массива констант для Direct3D, проблема что я некоторых не нашел, вот и спрашиваю как их сопоставить.
первый параметр:
static unsigned int sfactorArray[] = {  0,
                    0,//?
                    0,//?
                    0,//?
                    0,//?
                    D3DRS_SRCBLENDALPHA,
                    0,//?
                    D3DRS_DESTBLENDALPHA,
                    0//?
};
для второго параметр этот массив заполнил:
static unsigned int dfactorArray[] = {  D3DBLEND_ZERO, D3DBLEND_ONE,
                    D3DBLEND_SRCCOLOR,
                    D3DBLEND_INVDESTCOLOR,
                    D3DBLEND_SRCALPHA,
                    D3DBLEND_INVSRCALPHA,
                    D3DBLEND_DESTALPHA,
                    D3DBLEND_INVDESTALPHA, 0};
Итак надеюсь проблема понятна? второй  массив в OpenGL и Direct3D по смыслу по идее один в один, но для первого массива я не смог найти все константы эквивалентные OpenGL константам:(
Скажите как до конца заполнить(заменить нули) массив sfactorArray для Direct3D?
правильно ли я по смыслу сопоставил константы для обоих API?
Спасибо всем заранее.
С уважением Андрей.

Правка: 28 июля 2005 18:42

Организация столкновений на основе Octree-дерева27 июля 200519:56#7
D.Rider
>Не понял вопроса...
Итак камеру я представляю ввиде BBox'а а не сферы и этот BBox проверять на столкновение с полигонами листа, это будет правильный подход? если нет то расскажи почему
Организация столкновений на основе Octree-дерева26 июля 200520:41#5
D.Rider
А если камеру в виде BBox'а предстьавить и с полигонами ввиде плоскостей проверять нормально будет?
Организация столкновений на основе Octree-дерева26 июля 200518:42#3
D.Rider
Uranius
Все теперь понятно я так и думал но для начала я подумал ор скорости: Допустим в узле 100-200 полигонов не медленно будет проверять?
Организация столкновений на основе Octree-дерева25 июля 200520:06#0
Привет всем!!!
сделал Octree дерево. Вот задамался сделать на основе его столкновения но вот не знаю как это организовать.
я так понял столкновения надо проверять только с листьями дерева. В некоторых млучаях это прерасно работает.Для удобства я камеру тоже ограничил Bounding Box'ом. Но в некоторых случаях, когда Bounding Box окружает группу полигонов и в нем есть пустотаб т.е. до ближайшей группы большое расстояние и это тоже считается столкновением, а визуально мы сталкиваемся не с группой полигонов а с самим Bounding Box'ом и реалистичность столкновения теряется...я думаю понятно объяснил.
У меня есть идея как-то переработать структуру листьев ядля тех случаев когда в расстояния от группы полигонов находящихся внутри Boundoing Box'а до его стенок велико. Но не знаю как это реализовать. Нехочется изобретать велосипед.
вопросы:
1) Как это сделать? и возможно ли?
2) Где про это почитать?
3) Как другие это реализовали?(мне не нужен код а просто подробная идея)

Спасибо всем заранее. С уважением Андрей

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

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