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

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

Моя 3Д квартира.Без мебели.13 фев. 20092:22#20
да не тормозит не отключил человек вертикальную синхронизацию. Чего сразу набросились? :)))
ладно хоть программа на Visual C++, взялся за серьезный язык. Не полез в Delphi.
gongex
отключи VSync через wglSwapIntervalEXT.
как будет сложная геометрия не рисуй через glBegin/glEnd. В остальном научишься.
Быстро посчитать BoundBox'ы11 фев. 200920:51#18
dub
>[b]IronPeter[/b]
>> [...] Корни считать конечно же не надо.
>сравнивать квадраты?
конечно же. Вот выкладка:
sqrt(a) < sqrt(b) -> sqr(a) < sqr(b)
[3dmax] Экспорт текстурных координат для индексированной геометрии11 фев. 20092:36#1
Lost
>меш (кубик) вывернут
смотри ориентацию граней
могу дать кусок кода.
насчет текстурных координат попробуй:
tmpVert.tv = 1.0f - tVert.y;
Export. MaxAPI.10 фев. 200913:22#4
Termi
почитай из MAX SDK как получить IDerivedObject из INode т.е. вот такая цепочка, причем она стандартна:
INode->Object->IDerivedObject.
далее:
for(int i = 0; i < dobj->NumModifiers(); ++i) {
    Modifier* modifier = dobj->GetModifier(i);
    if (SKIN_CLASSID == modifier->ClassID()) {
      // Skin Modifier
    }
Export. MaxAPI.9 фев. 200913:29#2
Termi
в MaxAPI узел и кость это одно и то-же.
Берешь из узла модификатор скин
потом у него узнаешь число костей и получаешь кости ко индексу
ISkin *skin = static_cast<ISkin *>(modifier->GetInterface(I_SKIN));
int boneCount = skin->GetNumBones();
for(int i = 0; i < boneCount; ++i) {
      INode *node = skin->GetBone(i);
....
}
[DX9] DrawIndexedPrimitive помогите найти проблему8 фев. 20098:50#2
Lost
Порядок обхода граней проверь. Освещение выключи. Нарисуй один треугольник попробуй. Само собой совет
Wraith
Попробуй
Множество вершинных буфферов - это нормально?7 фев. 20096:00#1
HolyDel
Для каждого формата заведи свой общий вершинный буфер. Для каждого меша рисуй со смещением.
Инициализация Opengl 3.0 в Linux3 фев. 200918:32#1
svas
а ты под Windows код брал? если итак то понятно почему не работает. там-же glXGetProcAdress вместо wglGetProcAddress.
Помогите с ARB Shaders3 фев. 200918:29#7
Selestis
>По идее должно быть всё.
что все? :) ищи для своего любимого Delphi модуль OpenGL.pas и используй инициализацию расширений с него.
Помогите с ARB Shaders3 фев. 200914:14#1
Selestis
glCreateShaderObjectARB <> nil ?
Как узнать значение стейта AlphaBlendEnable в рантайме (.fx ) ?2 фев. 20090:51#3
Imp5
а ну тогда тебе нужно из эффекта выцепить значение RenderState из прохода техники.
ну а лучше на этапе загрузки материала сразу это сделать и записать в сам материал.
Как узнать значение стейта AlphaBlendEnable в рантайме (.fx ) ?1 фев. 200923:50#1
DWORD AlphaBlendEnable = 0;
IDirect3DDevice9::GetRenderState(D3DRS_ALPHABLENDENABLE, &AlphaBlendEnable);
Встроенный ассемблер MSVC++ 20051 фев. 200918:05#1
NiL
Нельзя вроде задавать данные в встроенном assembler в Visual C++.
попробуй их как локальные переменные определить.
может быть что-то типа такого по аналогии с твоими данными
//db 0f, 0xA2f
char b[] = {0x0f, 0xA2};
  __asm {
    mov eax, dword ptr b[0]
    mov ebx, dword ptr b[1]
  }
Ну в правильности решения я могу ошибаться.
Преобразование из системы координат 3ds max в directx1 фев. 200916:43#7
vip_open
// конвертация матрицы
Math3D::Matrix4x4 AnimationModelSaver::ConvertMatrix(const Matrix3& matMax) const
{
  Matrix3 mMax = matMax;
  mMax.Orthogonalize();
  mMax.NoScale();
  using Math3D::Matrix4x4;
  Matrix4x4 mD3D;
  mD3D.LoadIdentity();
  // copy rotation
  for(int i = 0; i < 3; ++i) {
    Point3 row = mMax.GetRow(i);
    for(int j = 0; j < 3; ++j) {
      mD3D[j + 4 * i] = row[j];
    }
  }
  Point3 pos = mMax.GetTrans();
  // copy transformation
  mD3D.Translate(pos.x, pos.y, pos.z); // Matrix[12] = pos.x, Matrix[13]  = pos.y, Matrix[14] - pos.z

  Matrix4x4 mD3DTransformation;
  memset(&mD3DTransformation, 0, sizeof(Matrix4x4));
  mD3DTransformation[0] = 1.0f;
  mD3DTransformation[10] = 0.0f;
  mD3DTransformation[5] = 0.0f;
  mD3DTransformation[9] = 1.0f;
  mD3DTransformation[6] = -1.0f;
  mD3DTransformation[15] = 1.0f;
  mD3D = mD3DTransformation * mD3D;
  return mD3D;
}
Matrix4x4 представлена как
float [16]
0 4 8  12
1 5 9  13
2 6 10 14
3 7 11  15
соответственно перепишешь под D3DXMATRIX

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

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