Сообщения на форуме пользователя Andrey (122 стр.)
PVS, potentially visible set. | 10 дек. 2007 | 20:50 | #6 |
---|
Джо
>Occlusion query юзайте, прогрессивный подход, тем более всё в железе.
линейно ходить по списку объектов, рендерить в Occlusion query и ждать результата?
если так то это убъет FPS пробовал сам и на Direct3D и на OpenGL. Нужно делать иерархический OQ. Если ты это сделал можешь рассказать как?
>Occlusion query юзайте, прогрессивный подход, тем более всё в железе.
линейно ходить по списку объектов, рендерить в Occlusion query и ждать результата?
если так то это убъет FPS пробовал сам и на Direct3D и на OpenGL. Нужно делать иерархический OQ. Если ты это сделал можешь рассказать как?
Culling + landscape | 10 дек. 2007 | 20:48 | #1 |
---|
CAJ
1. Occlusion Culling (тупой способ IDirect3DQuery9*)
2. для 512x512 я делал 64x64. По скорости вполне нормально.
3. гружу DevIL'ом. проблем не было.
остальное сложно сказать.
1. Occlusion Culling (тупой способ IDirect3DQuery9*)
2. для 512x512 я делал 64x64. По скорости вполне нормально.
3. гружу DevIL'ом. проблем не было.
остальное сложно сказать.
скопировать backbuffer в текстуру? (DX) | 10 дек. 2007 | 19:43 | #1 |
---|
SunnyDay
попробуй так:
?
попробуй так:
IDirect3DDevice9::GetBackBuffer(BackBufferSurface) IDirect3DTexture9::GetSurfaceLevel(TextureSurface) D3DXLoadSurfaceFromSurface(TextureSurface, ...,...,TextureSurface)
создаю свой формат 3Д модели. есть вопросы | 10 дек. 2007 | 16:18 | #9 |
---|
Zemedelec
а может float[4] веса, а unsiugned char[4](больше 255 костей же не будет) индексы ?
а может float[4] веса, а unsiugned char[4](больше 255 костей же не будет) индексы ?
try-catch ? или VS издевается надо мной? | 10 дек. 2007 | 12:58 | #70 |
---|
Конишуа
>Потому что на винде signal сильно кастрированный.
да и слишком сильно.
>Потому что на винде signal сильно кастрированный.
да и слишком сильно.
Небольшая дискуссия – создать 3D графический движок современного уровня – это не сложно… | 10 дек. 2007 | 11:25 | #106 |
---|
heihachi
>Zeux
>>Ха-ха...
>??
а ты реализовал уже реалистичные, быстрые, мягкие тени без артефактов, и не аля 1 моделька на экране, а в сложной сцене с большим количеством объектов и т.д. ?
если да, то ты должен понять Zeux'ха
>Zeux
>>Ха-ха...
>??
а ты реализовал уже реалистичные, быстрые, мягкие тени без артефактов, и не аля 1 моделька на экране, а в сложной сцене с большим количеством объектов и т.д. ?
если да, то ты должен понять Zeux'ха
try-catch ? или VS издевается надо мной? | 10 дек. 2007 | 10:55 | #68 |
---|
CyberZX
так про __try ... __except я знаю уже реализовал давно, я имел ввиду как перехватывать системные исключения в Windows использую сигналы?(в QNX я вызвал signal с указателем на функцию обрабочик все работало)
попытался сделать тоже самое для windows ничего не получилось, ошибка не перехватывалась
так про __try ... __except я знаю уже реализовал давно, я имел ввиду как перехватывать системные исключения в Windows использую сигналы?(в QNX я вызвал signal с указателем на функцию обрабочик все работало)
попытался сделать тоже самое для windows ничего не получилось, ошибка не перехватывалась
try-catch ? или VS издевается надо мной? | 10 дек. 2007 | 10:47 | #67 |
---|
*vmr
>Что значит "вставит обработку"?
ну программы на Delphi меньше падают от системных исключений, в сравненнии с Visual C++(если там конечно не делать их перехват) там я думаю перехват AV и деление на 0 перехватываются, на то он и Delphi что-бы кнопки шлепать.
CyberZX
спасибо, почитаю
>Что значит "вставит обработку"?
ну программы на Delphi меньше падают от системных исключений, в сравненнии с Visual C++(если там конечно не делать их перехват) там я думаю перехват AV и деление на 0 перехватываются, на то он и Delphi что-бы кнопки шлепать.
CyberZX
спасибо, почитаю
try-catch ? или VS издевается надо мной? | 9 дек. 2007 | 21:32 | #63 |
---|
*vmr
>в Delphi за тебя отлов таких ошибок сделает компилятор ;)
0_0. Намек не понял
тут компилятор вставит вставит обработку системных исключений windows,в часнсоти деление на 0
CyberZX
>Так что, если хотите обрабатывать ошибку целочисленого деления на нуль, то используйте SEH или сигналы
перехватить обращение по NULL указателю у меня получилось в QNX, под windows это не получилось, как и с целочисленным делением на 0, пользовался функиями raise и signal. Можешь показать кусок кода как это сделать для Windows?
>в Delphi за тебя отлов таких ошибок сделает компилятор ;)
0_0. Намек не понял
var i,j:integer; bgin i := 1 / j; //компилятор delphi занулит локальную перменную j; end;
CyberZX
>Так что, если хотите обрабатывать ошибку целочисленого деления на нуль, то используйте SEH или сигналы
перехватить обращение по NULL указателю у меня получилось в QNX, под windows это не получилось, как и с целочисленным делением на 0, пользовался функиями raise и signal. Можешь показать кусок кода как это сделать для Windows?
try-catch ? или VS издевается надо мной? | 7 дек. 2007 | 23:06 | #23 |
---|
*vmr
>А почему нет? 0_0
потомучто это не оговорено в стандарте C++. и ловить такие ошибки через catch(...) говорит об отсутствии квалификации программиста.
>Я понимаю что AV не должно быть в принципе, но неужели в отловле AV есть какой-то подвох?
в Delphi за тебя отлов таких ошибок сделает компилятор ;)
>А почему нет? 0_0
потомучто это не оговорено в стандарте C++. и ловить такие ошибки через catch(...) говорит об отсутствии квалификации программиста.
>Я понимаю что AV не должно быть в принципе, но неужели в отловле AV есть какой-то подвох?
в Delphi за тебя отлов таких ошибок сделает компилятор ;)
Заггрузка ландшафтов из 16, 32 bit-chanel карт высот | 7 дек. 2007 | 23:04 | #13 |
---|
SunnyDay
вот так я выцепляю в зависимости от байт на пиксель значения пикселя.
вот так я выцепляю в зависимости от байт на пиксель значения пикселя.
switch (bpp) { case 1: { return pixels[bpp * y * width + bpp * x]; } case 2: { unsigned short pixel = 0; std::memcpy(&pixel, &pixels[bpp * y * width + bpp * x], bpp); return pixel; } case 4: { unsigned int pixel = 0; std::memcpy(&pixel, &pixels[bpp * y * width + bpp * x], bpp); return pixel; } }
try-catch ? или VS издевается надо мной? | 7 дек. 2007 | 18:51 | #21 |
---|
*vmr
>Например, то же деление на ноль можно было б и обработать ("откатить" операцию и сказать пользователю что он ввел неправильные данные :) ).
хорошо... примеры: ты залез за пределы массива, шарахнул по NULL указателю... выполнил недопустимую инструцию... это все системные исключения Win32
все это надежно ловится __try __except.
смотри winbase.h макроопределения
>Например, то же деление на ноль можно было б и обработать ("откатить" операцию и сказать пользователю что он ввел неправильные данные :) ).
хорошо... примеры: ты залез за пределы массива, шарахнул по NULL указателю... выполнил недопустимую инструцию... это все системные исключения Win32
все это надежно ловится __try __except.
смотри winbase.h макроопределения
#define EXCEPTION_ACCESS_VIOLATION ... #define EXCEPTION_INVALID_HANDLE
Будет ли утечка памяти? | 7 дек. 2007 | 11:37 | #9 |
---|
_Winnie
atap3d
или
std::vector<boost::shared_ptr<mt> > MT;
atap3d
или
std::vector<boost::shared_ptr<mt> > MT;
Заггрузка ландшафтов из 16, 32 bit-chanel карт высот | 6 дек. 2007 | 19:36 | #4 |
---|
SunnyDay
если формат 32 бита то данные пикселе лежат в виде последовательности 4 байтов(они и сотавляют цвет пикселя или значение высоты карты высот). их нужно скопировать в переменнную DWORD.
для 16 битного нужно также скопировать в unsigned short.
если формат 32 бита то данные пикселе лежат в виде последовательности 4 байтов(они и сотавляют цвет пикселя или значение высоты карты высот). их нужно скопировать в переменнную DWORD.
для 16 битного нужно также скопировать в unsigned short.
Заггрузка ландшафтов из 16, 32 bit-chanel карт высот | 6 дек. 2007 | 18:46 | #2 |
---|
SunnyDay
делаешь Switch в зависимости от байт на пиксель. соответственно значение пикселя будет не 0..255, а в зависимости от битности. для RGB нужно битовыми операциями взять значение. Вроде так.
делаешь Switch в зависимости от байт на пиксель. соответственно значение пикселя будет не 0..255, а в зависимости от битности. для RGB нужно битовыми операциями взять значение. Вроде так.