Сообщения на форуме пользователя Andrey (71 стр.)
Wolfenstein 2009 | 21 авг. 2009 | 19:17 | #36 |
---|
Drazd
>А непонятно чтоли? :)
ну я думал серьезно как фанат типа :)
All
так все ясно вспомнил действительно ID Software и OpenGL.
>А непонятно чтоли? :)
ну я думал серьезно как фанат типа :)
All
так все ясно вспомнил действительно ID Software и OpenGL.
Wolfenstein 2009 | 21 авг. 2009 | 19:12 | #34 |
---|
Drazd
>Кризис, превед!!!
прикалываешься что-ли?
Nikopol
>Блин, графика просто убогая...
согласен. да и арт немного подкачал.
All
народ игра я так понимаю на OpenGL ? шейдеры ресурсы ковыряли? что там? GLSL ? какая версия ? какая сложность шейдеров?
>Кризис, превед!!!
прикалываешься что-ли?
Nikopol
>Блин, графика просто убогая...
согласен. да и арт немного подкачал.
All
народ игра я так понимаю на OpenGL ? шейдеры ресурсы ковыряли? что там? GLSL ? какая версия ? какая сложность шейдеров?
GL_ARB_half_float_vertex или float -> half_float на CPU | 19 авг. 2009 | 22:51 | #16 |
---|
SNVampyre
по идее на слабых картах увеличиться и быстродействие. да и в 2 раза можно уменьшить памяти прост овсе что float заменять на half float.
по идее на слабых картах увеличиться и быстродействие. да и в 2 раза можно уменьшить памяти прост овсе что float заменять на half float.
GL_ARB_half_float_vertex или float -> half_float на CPU | 19 авг. 2009 | 22:37 | #14 |
---|
SNVampyre
Расскажи о своих результатах, если ли прирост используя half float.
Расскажи о своих результатах, если ли прирост используя half float.
Спецификация OpenGL 3 от сегодня! (+инфа в посте №1) | 15 авг. 2009 | 14:27 | #1321 |
---|
innuendo
>> Да, OpenGL уже давно идёт на шаг позади.
>> Да, OpenGL уже давно идёт на шаг позади.
>Хороший пинок им бы не помешал бы :)
Эх, пинать то некому
FBO + GLSL не работает | 11 авг. 2009 | 13:22 | #14 |
---|
innuendo
>есть более простое glPushAttrib( GL_VIEWPORT_BIT ); :)
>но я забыл - это не круто :) -
ну да устарело. в gl3.h отсутствует.
>есть более простое glPushAttrib( GL_VIEWPORT_BIT ); :)
>но я забыл - это не круто :) -
ну да устарело. в gl3.h отсутствует.
FBO + GLSL не работает | 11 авг. 2009 | 10:11 | #11 |
---|
ALTAIR
попробуй ставить перед отрисовкой glViewPort(0,0,width, height)и перед биндингом FBO glViewPort(0,0,fbo_width, fbo_height)
попробуй ставить перед отрисовкой glViewPort(0,0,width, height)и перед биндингом FBO glViewPort(0,0,fbo_width, fbo_height)
Спецификация OpenGL 3 от сегодня! (+инфа в посте №1) | 8 авг. 2009 | 23:47 | #1273 |
---|
ud1
>Работает ли cg с gl 3.0fc?
ну вообще GLSL в nVidia компилиться через него.
>Работает ли cg с gl 3.0fc?
ну вообще GLSL в nVidia компилиться через него.
вопрос по экспорту из макса | 3 авг. 2009 | 17:39 | #11 |
---|
olegf
только скин. Я проверку модификатора то что он скин делаю при формироании списка модификаторов.
только скин. Я проверку модификатора то что он скин делаю при формироании списка модификаторов.
вопрос по экспорту из макса | 3 авг. 2009 | 16:43 | #8 |
---|
olegf
>А можно посмотреть как ты сделал вытаскивание скин инфо из нода в native API?
>А можно посмотреть как ты сделал вытаскивание скин инфо из нода в native API?
//get the skin interface ISkin *skin = static_cast<ISkin *>(animNodeData.modifier->GetInterface(I_SKIN)); if (!skin) { continue; } int boneCount = skin->GetNumBones(); outLog << "Total Bones: " << boneCount << "\n"; // цикл по костям for(int i = 0; i < boneCount; ++i) { INode *node = skin->GetBone(i); // получить родителя INode *parent = node->GetParentNode(); outLog << "Bone Index: " << i << " Bone Name: " << node->GetName(); if (parent) { outLog << " Parent: " << parent->GetName() << "\n"; } else { outLog << "\n"; } // попуск дублей if (std::find(Bones.begin(), Bones.end(), node) != Bones.end()) { continue; } Bones.push_back(node); } //loop through the vertices ISkinContextData *skinData = skin->GetContextInterface(nodeData.node); if (!skinData) { continue; } // число точек int numberOfPoints = skinData->GetNumPoints(); weights.resize(numberOfPoints); std::fill(weights.begin(), weights.end(), Weight()); for(int i = 0; i < numberOfPoints; ++i) { // число весов int numOfWeights = skinData->GetNumAssignedBones(i); if (numOfWeights > NUM_BONES_VERTEX) { outLog << "Warning num Weight > " << NUM_BONES_VERTEX << "\n"; } Weight& weight = weights[i]; for(int j = 0; j < numOfWeights; ++j) { float weightVal = skinData->GetBoneWeight(i, j); // индекс кости для вершины int boneIndex = skinData->GetAssignedBone(i, j); INode* bone = skin->GetBone(boneIndex); // поиск индекса кости как разность итераторов boneIndex = static_cast<int>(std::find(Bones.begin(), Bones.end(), bone) - Bones.begin()); assert(boneIndex < Bones.size()); if (j >= NUM_BONES_VERTEX) { // цикл поиска незанятой пары индекс кости + вес for(int k = 0; k < NUM_BONES_VERTEX; ++k) { if (weight.weights[k]) { continue; } weight.weights[k] = weightVal; weight.boneIndices[k] = boneIndex; break; } break; } weight.weights[j] = weightVal; weight.boneIndices[j] = boneIndex; } |
вопрос по экспорту из макса | 3 авг. 2009 | 13:16 | #1 |
---|
olegf
>в некоторых мешах не равно общему количеству вершин меша.
ну дак может не влияет на какие-то вершины кости вообще. Я не помню как это будет в IGame и в обычном Max API. Может в IGame сразу отбросили вершины на которые не влияет не одна кость для удобства? что говорит об этом MAX SDK ?
Давно писал через IGame, поптом переделал через Native Max API. Говорят в IGame баги есть и недоработки. Помню тупо возвращает IGameNode == NULL и хоть убейся непонятно в чем дело. Мало кто его использует из разработчиков.
Вот кусок кода как делал я. Но то точно не помню работае ли он, возможно что из него ты что-то подчеркнешь.
>в некоторых мешах не равно общему количеству вершин меша.
ну дак может не влияет на какие-то вершины кости вообще. Я не помню как это будет в IGame и в обычном Max API. Может в IGame сразу отбросили вершины на которые не влияет не одна кость для удобства? что говорит об этом MAX SDK ?
Давно писал через IGame, поптом переделал через Native Max API. Говорят в IGame баги есть и недоработки. Помню тупо возвращает IGameNode == NULL и хоть убейся непонятно в чем дело. Мало кто его использует из разработчиков.
Вот кусок кода как делал я. Но то точно не помню работае ли он, возможно что из него ты что-то подчеркнешь.
enum { NUM_BONES_VERTEX = 4 }; ... // структура веса struct Weight { // индекс костей unsigned char boneIndices[NUM_BONES_VERTEX]; // веса влияния float weights[NUM_BONES_VERTEX]; Weight(); }; ... std::vector<Weight> weights; ... int numSkinVertes = skin->GetNumOfSkinnedVerts(); weights.resize(numSkinVertes); for(int n = 0; n < numSkinVertes; ++n) { Weight& weight = weights[n]; int numWeight = skin->GetNumberOfBones(n); for(int j = 0; j < numWeight; ++j) { if (NUM_BONES_VERTEX - 1 == j) { break; } weight.weights[j] = skin->GetWeight(n, j); } for(int j = 0; j < numWeight; ++j) { if (NUM_BONES_VERTEX - 1 == j) { break; } //IGameNode* bone = skin->GetIGameBone(n); INode* bone = skin->GetBone(n, j); // избегаем дублирования костей. храня свой список костей, а не тот что дает Max if (std::find(Bones.begin(), Bones.end(), bone) == Bones.end()) { Bones.push_back(bone); } // выбираем свой индекс кости через свой список. unsigned char boneIndex = static_cast<unsigned char>(std::find(Bones.begin(), Bones.end(), bone) - Bones.begin()); weight.boneIndices[j] = boneIndex; } } |
ffmpeg, libavcodec доки, примеры? | 3 авг. 2009 | 12:09 | #25 |
---|
gexogen
ну если это быстро чем через шейдеры то вперед. Единственное DirectDraw устаревшая технология.
ну если это быстро чем через шейдеры то вперед. Единственное DirectDraw устаревшая технология.
ffmpeg, libavcodec доки, примеры? | 3 авг. 2009 | 1:19 | #23 |
---|
gexogen
что-бы выводить через DirectDraw нужно конвертировать софтварно YUV->RBG.
со звуком проще либо DirectSound либо OpenAL.
что-бы выводить через DirectDraw нужно конвертировать софтварно YUV->RBG.
со звуком проще либо DirectSound либо OpenAL.
Boost - цикл статей. | 31 июля 2009 | 21:51 | #1 |
---|
Пиши, для новичков полезно будет. Удели внимание. boost::asio boost::spirit
XBox360 быстрее PS3 ? | 31 июля 2009 | 15:45 | #1 |
---|
innuendo
очень удивлен если честно результатами...
очень удивлен если честно результатами...