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

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

Преобразование из системы координат 3ds max в directx1 фев. 200912:08#5
vip_open
тебе обязательно нужна матрица Matrix3  ? могу дать код который преобразует готовую матрицу для Direct3D. Хотя она-же и работает в OpenGL, потому что скелетная анимация на шейдерах.
AMD/ATI зарелизили драйверы с поддержкой OpenGL 3.031 янв. 200912:59#20
Booster
а у меня все хорошо на ATI 9600 и X1300.
nVidia зарелизила OpenGL 3.0 драйверы30 янв. 20091:57#202
NULL_PTR
>Ну GL3.0 начиная с HD2400
я так и подумал. Зачем тогда функция доступна? просто с другими расширениями было так если не поддерживается то NULL указатель. Странно как-то
nVidia зарелизила OpenGL 3.0 драйверы30 янв. 20091:44#200
На ATI X1300 context не создается :(, wglCreateContextAttribsARB != NULL
пробовал так:
    const int formatAttributes[] = {
      WGL_CONTEXT_MAJOR_VERSION_ARB, 3,
      WGL_CONTEXT_MINOR_VERSION_ARB,
      WGL_CONTEXT_FLAGS_ARB, WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB,
      0
    };
и так
  if (wglCreateContextAttribsARB) {
    const int formatAttributes[] = {
      WGL_CONTEXT_MAJOR_VERSION_ARB, 3,
      WGL_CONTEXT_MINOR_VERSION_ARB,
      0, 0,
      0
    };
на nVidia 8600 все работает по второму варианту. Пишет OpenGL 3.0 NVIDIA 181.00, GLSL 1.3
Преподавание С++29 янв. 200913:39#15
dub
>паскаль, Delphi
плохо дело. тогда твой объем будет достаточен. Все кто заинтересовался пойдут дальше.
эти языки значительно  проще С++ тяжело будет хорошо изучить C++. Хотя от человека все зависит.

Правка: 29 янв. 2009 13:51

проблема с OpenGL29 янв. 200913:21#12
Minsk and Boo
тема еще не во флейме? странно
Преподавание С++29 янв. 200912:12#7
dub
>смеси это что?
union
?
а где RTTI, исключения и проблемы производительности? где ООП ? где совместимость с С ?
1 лекция раз в 2 недели? это очень мало. хотя-бы раз в неделю, а практика 2 раза. Зачем dll ? это уже более специфически. По идее это должно быть в курсе программирования под Windows. Зачем паттерны? по идее тоже отдельный курс и возможно вместе с UML. Многие не поймут что это. Хотя все от уровня зависит.
HLSL & GLSL || CG ?24 янв. 200923:40#50
innuendo
>У кого есть факты что HLSL и Cg могут компилить один шейдер в разный код ( по качеству ) ? Вроде это братья близнецы :)
http://blog.gamedeff.com/forum/view.html?id=10
там IronPeter постил.
Можно ли использовать 1 буфер для вершин и индерсов?[DX10]24 янв. 200913:40#4
Bishop
>D3D10_BIND_VERTEX_BUFFER or D3D10_BIND_INDEX_BUFFER
по идее API смотрит тип биндинга по этим параметрам(ведь вершины и индексы хранятся наверняка по разному) и если ты ставишь как вершинный буфер а при создании указываешь
D3D10_BIND_INDEX_BUFFER(ведь у тебя 1 буфер для всего) то как это будет работать?
или наоборот при создании D3D10_BIND_VERTEX_BUFFER, а ставишь как индексный.
Deferred Shading, AA, alpha blending. (demo, GL2.0)24 янв. 20093:29#32
NULL_PTR
ATI X1300  не запуcтилось(8.12 дрова):
Successfully created OpenGL device
Creating and compiling vertex shader
Creating and compiling fragment shader
Linking and validating shader
GLSL validation warnings: Validation warning! - Sampler value tex has not been set in fragment shader
 Validation successful. 
Creating and compiling vertex shader
Creating and compiling fragment shader
Linking and validating shader
GLSL link error: Fragment shader(s) failed to link,  vertex shader(s) linked. 
Fragment Shader not supported by HW 

nVidia 8600 GT тоже
Successfully created OpenGL device
Creating and compiling vertex shader
Creating and compiling fragment shader
Linking and validating shader
GLSL validation warnings: Creating and compiling vertex shader
Creating and compiling fragment shader
Linking and validating shader
GLSL validation warnings: Creating and compiling vertex shader
Creating and compiling fragment shader
Linking and validating shader
GLSL validation warnings: Creating and compiling vertex shader
Creating and compiling fragment shader
Linking and validating shader
GLSL validation warnings: Creating and compiling vertex shader
Creating and compiling fragment shader
Linking and validating shader
GLSL validation warnings: Frame buffer unsupported
Failed to render frame
Successfully destroyed OpenGL device
Можно ли использовать 1 буфер для вершин и индерсов?[DX10]24 янв. 20093:13#2
Bishop
а как это будет работать?
ты что ставил когда создавал, в параметре D3D10_BUFFER_DESC.BindFlags ?
HLSL & GLSL || CG ?23 янв. 200914:18#25
XaeroX
хм... я для ARB помню правил семантику ATI не понимал weight.
HLSL & GLSL || CG ?23 янв. 200912:59#15
NighthunteR
>Гарантируется ли, что Сg компилятор в GLSL профиле создает код 100% совместимый с ATI?
да.
Експорт геометрии из 3d max22 янв. 200915:31#19
Vel
>Я незнаю, все скомпилилось, а модели сохраненные моим плагином уже не грузятся в загрузчике, он виснит и все.
ну дак проблема может в загрузчике? дебаж смотри что не так.
>только вот я немогу разобраться как оттуда нормали достать нормально ...
да вот стандартный метод для получения нормалей:
//Получить нормаль к вершине
Point3 ModelSaver::GetVertexNormal(Mesh& mesh, int faceNo, int vertexIndex, const Matrix3& rot) const
{
  if (faceNo >= mesh.getNumFaces()) {    
    return Point3(0.0f, 0.0f, 0.0f);
  }
  // Получение RVertex
  RVertex& rv = mesh.getRVert(vertexIndex);
  // Получить грань
  Face& face = mesh.faces[faceNo];
  // Группа сглаживания
  DWORD smGroup = face.getSmGroup();
  // Число нормалей
  int numNormals = 0;  
  Point3 vertexNormal;
  // Данное определение еще не используется,
  // но может быть определена в следующих версиях
  if (rv.rFlags & SPECIFIED_NORMAL) {
    vertexNormal = rot * rv.rn.getNormal();
  }
  // Проверка нормали для группы сглаживания
  else if ((numNormals = rv.rFlags & NORCT_MASK) && smGroup) {
    // Если есть 1 вершина найденная в Классе rn 
    if (1 == numNormals) {
      vertexNormal = rot * rv.rn.getNormal();      
    }
    else {
      // Ищется та нормаль которая входит в ту-же группу сглаживания
      // что и нормали указателя ern класса RNormal. 
      // В этом случае найдется множество нормалей 
      for (int i = 0; i < numNormals; i++) {
        if (rv.ern[i].getSmGroup() & smGroup) {
          vertexNormal = rot * rv.ern[i].getNormal();
        }
      }
    }
  }
  else {
    // Последний вариант получения нормали это нормаль к гране 
    // содержащей вершину
    vertexNormal = rot * mesh.getFaceNormal(faceNo);
  }  
  vertexNormal.Normalize();
  return vertexNormal;
}

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

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