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

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

Экспортный плагин для 3DSMAX на Delphi (coming soon)8 фев. 200712:35#1
Coriolis
а зачем тут Delphi? чем C++ не устраивает?
Передача HWND окна функции IDirect3D9::CreateDevice()8 фев. 200712:22#7
Denys
>Как достать код Ошибки функции IDirect3D9::CreateDevice()?
DXGetErrorString9, DXGetErrorDescription9
// вывод Ошибки Direct3D
void Direct3DRender::OutDirect3DError(HRESULT hr) const
{
  // проверка ошибок
  if (S_OK == hr) {
    return;
  }
  static const char *Desctiption = " Description: ";
  OutMessage(Console::ERROR_MESSAGE, "%s%s%s%s%s", 
        Console::StdMessage[Console::DIRECT3D_ERROR], 
        DXGetErrorString9(hr), Desctiption, 
        DXGetErrorDescription9(hr), "\n");
}
simple uml editor8 фев. 200711:04#13
sobaka
ага спасибо посмотрю
Опрос (комментарии)7 фев. 200718:01#6
mrX
Ну вот смотри:
  //цикл по материалам
        for (l = 0; l < numMtl; l++) {
          //обнулить максимальную текстурную координату
          maxTV = 0;
          //Проход по списку граней
          for (j = 0; j < nTriangles; j ++) {
            //получить грань
            tvFace = &mesh->tvFace[j];
            if (numMtl >= 1)
            //если совпали индекс материала и индекс материала грани
            if (l == mesh->getFaceMtlIndex(j))
              //цикл по индексам грани
              for(k = 0; k < 3; k++) {
                //получить индекс грани
                index = tvFace->t[k];    
                //поиск максимальной координаты
                if (mesh->tVerts[index].y > maxTV)        
                  maxTV = mesh->tVerts[index].y;          
              }
          }
// вот это место мне давно давно подсказал 1 хороший человек..
// тут происходит какое-то образение итекстурных координат я давно уже не смотрел сюда но вот теперь назрела проблема.
// я так понимаю тут связано с поиском максимального и минимального значенгия координаты но для чего это?
          if (maxTV != static_cast<float>(maxTV)) {
            maxTV = static_cast<float>(static_cast<int>(maxTV)) + 1.0f;//округление
          }
          else {
            maxTV = static_cast<float>(static_cast<int>(maxTV));//округление
          }    
          //цикл по материалам
          //for (l = 0; l < numMtl; l++)
          //Проход по списку граней
          for (j = 0; j < nTriangles; j ++) {  
            //получить грань
            tvFace = &mesh->tvFace[j];            
            //если совпали индекс материала и индекс материала грани
            if (l == mesh->getFaceMtlIndex(j)) {
              //цикл по индексам грани
              for(k = 0; k < 3; k++) {
                //получить индекс грани
                index = tvFace->t[k];
                //получить координату x
                tvert.x = mesh->tVerts[index].x;
                //перевернуть координату y
                tvert.y = maxTV - mesh->tVerts[index].y;
                //записать в массив
                tVerts[index] = tvert;
              }
            }
          }            
        }
Опрос (комментарии)7 фев. 200717:57#5
mrX
можно конечно но его там многовfто... как выкладывать?
simple uml editor7 фев. 200713:01#11
zxmd
Daevaorn
Я заглянул в exe файл и увидел ужас:
$0U <е]Г SOFTWARE\Borland\Delphi\RTL FPUMaskValue
по результату работы проги все стало понятно.
simple uml editor6 фев. 200719:22#6
Daevaorn
sobaka
а как им пользоваться? Как всегда напишут на паганом и убогом Delphi и нифига не работает :( Вот полюбуйтесь
Изображение удалено
Я только учусь (комментарии)6 фев. 200714:13#1
Ну вот совсем другое дело...
Передача параметров в эффект (DirectX HLSL)6 фев. 200711:40#15
-=FiliMOON=-
>2Марина
>**Бегает с плакатом "Смерть нубизму" и рыдает**
>без коментариев... зы: учи азы
что самый умный? или ты сразу все знал ;) Не у всех участников форума большой опыт.
куда делась D3DXSaveTextureToFileInMemory?6 фев. 200711:32#1
araud
Какой у тебя SDK ? в апрельском  2006 года. она есть.
Тема бессмыслена обнови SDK.
Вопрос по рендерингу ландшафта6 фев. 200711:29#17
dave
>>далее динамический IB с Lock/Unlock memcpy это не совсем хорошо...
>Что же тут нехорошего? Если все правильно запрограмлено, то никаких проблем. Под ОГЛ не знаю но в ДХ пихать весь >ландшафт в один буффер нереально. Да и ОГЛ наверное тоже если видеопамять нужна будет под текстуры и т.д.
ROAM к примеру имеет большой недостаток пересчет бинарного дерева треугольников завязанного на CPU (хотя может и на шейдере можно сделать) и динамические вершинные буферы. Об это писал Снук в книги "3D Ландшафты в реальном времени на C++ и DirectX 9". Он рекомендовал так не делать. Динамический вершинный бфер хуже оптимизируется для хранения в видеокарте.
Насколько я понимаю их следует использовать по минимум. Если я не ошибаюсь используются они к примеры в скелетной анимации. И то уже она в современном подходе использует вершинный шейдер.
А почему нереально загнать весь ландшафт в видео память? ограничение только на видео память. Если конечно ландшафт бесконечный то тут динамическая подгрузка должна быть, решение в лоб не подходит. И какая разница на каком API это использовать в IDiect3DVertexBuffer9 и в GL_ARB_vertex_buffer_objects похожие принципы создания/хранения геометрии.
Вопрос по рендерингу ландшафта5 фев. 200719:45#10
Спец
А если карта Radeon 9200, GeForce 4200,5500
как ты выведешь за 1 вызов много поликов? Если ты конечно под OpenGL то тут проблем нет.
далее динамический IB с Lock/Unlock memcpy это не совсем хорошо...
я бы сделал 1 VB и 1 IB и рисовал много DIP'ов, при больших ландшафтах нужно побольше выбрать размер узла тогда за 100 Dip'ов можно отрендерить весь ландшафт. Я считаю это не слишком много.
к такой схеме очень хорошо прикручивается Chucked Lod просто по растонянию(ошибке) подсовыввается другой индексный буфер. В таком способе оставется 1 недостаток это частый вызов DIP но зато все буферы статические.
Скелетная анимация в OpenGL5 фев. 200713:56#10
DimanX
>Вот так:
>tVerts[i] += (geom.Verts[i]*frames[frame][wtbl[i][j].ID].M)*wtbl[i][j].Weight;
дак в Delphi нет оператора +=
поэтому твой код возможно будет быстрей аналогичного на Delphi
Опрос (комментарии)5 фев. 200713:33#3
mrX
Из интересующих тем должно быть много, для начинающих совсем нужны основы: структура плагинов 3DS Max, какие бывают плагины,  доступ к данных сцены, поля пользователя написание GUI для плагинов, узлы сцен, и т.д.
для более опытных более тонкие моменты.
К примеру не могу понять почему на 1 сцене нормально экспортируются текстурные координаты, на другой все съезжает :(
еще слышал что поменяли ядро 3DS Max 9 так что нужно введение про различия SDK 8.0 и 9.0.
Опрос (комментарии)5 фев. 200713:26#2
mrX
В чем проблема?
Сообщество должно быть.

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

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