Сообщения на форуме пользователя Andrey (138 стр.)
Как узнать размер post-TnL-кэша? | 22 мая 2007 | 10:49 | #19 |
---|
vip_open
>как в FarCry делали? у них так то секции состоят из 33х33 вершин...
откуда знаешь? можешь поделится инфой или ссылками и т.д. ?
>как в FarCry делали? у них так то секции состоят из 33х33 вершин...
откуда знаешь? можешь поделится инфой или ссылками и т.д. ?
Сортировка объектов | 21 мая 2007 | 13:33 | #1 |
---|
kr214
сортировать объекты следует по расттонию до камеры(сравнивай лучше квадрат расстояния). И выводить от ближних к дальним.
Если в объекте разные материалы то объекты следует сортировать еще и по материалам.
В результате будут группы объектов отсортированных по материалам, а внутри групп еще и по расстоянию.
сортировать объекты следует по расттонию до камеры(сравнивай лучше квадрат расстояния). И выводить от ближних к дальним.
Если в объекте разные материалы то объекты следует сортировать еще и по материалам.
В результате будут группы объектов отсортированных по материалам, а внутри групп еще и по расстоянию.
Ошибка с форматом depth buffer | 18 мая 2007 | 19:26 | #2 |
---|
БЕБЕГОН
задай массив AutoDepthStencilFormat и проверяй IDirect2D9::CheckDeviceFormat:
задай массив AutoDepthStencilFormat и проверяй IDirect2D9::CheckDeviceFormat:
const D3DFORMAT displayFormats[] = { D3DFMT_D32, D3DFMT_D24S8, D3DFMT_D24X4S4, D3DFMT_D24X8, D3DFMT_D16 }; // цикл по форматам for(size_t j = 0; j < sizeof(displayFormats) / sizeof(displayFormats[0]); ++j) { // проверка формата if (FAILED(pD3D->CheckDeviceFormat(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, d3ddm.Format, D3DUSAGE_DEPTHSTENCIL, D3DRTYPE_SURFACE, displayFormats[j]))) { continue; } pPresentationParameters.AutoDepthStencilFormat = displayFormats[j]; break; } |
D3DERR_DRIVERINTERNALERROR | 18 мая 2007 | 19:23 | #3 |
---|
ztranger
ищи ошибки при работе вершиными/индексными буферам,проверяй границы указателей из VB/IB . Я как-то шарахнул за пределы буфера у меня такая ошибка выскакивала. Иногда комп в перезагруз.
ищи ошибки при работе вершиными/индексными буферам,проверяй границы указателей из VB/IB . Я как-то шарахнул за пределы буфера у меня такая ошибка выскакивала. Иногда комп в перезагруз.
vsprintf + /vsscanf - | 18 мая 2007 | 13:08 | #7 |
---|
Inspire
>Нет. У нас потокам С++ красный свет.
очень интересно, расскажи по каким причинам?
>Нет. У нас потокам С++ красный свет.
очень интересно, расскажи по каким причинам?
Проблемы с экспортом текстурных координат. | 17 мая 2007 | 14:08 | #2 |
---|
Zemedelec
ну к примеру я в лог выводил чему же равно MaxTV, у меня и получается что 1.0f == MaxTV. Я конечно все это потом проверю и если действительно всегда 1.0f == MaxTV, то я уберу поиcк MaxTV.
ну к примеру я в лог выводил чему же равно MaxTV, у меня и получается что 1.0f == MaxTV. Я конечно все это потом проверю и если действительно всегда 1.0f == MaxTV, то я уберу поиcк MaxTV.
Проблемы с экспортом текстурных координат. | 17 мая 2007 | 13:33 | #0 |
---|
Привет всем!
Решил переделать экспортер что-бы экспортировались индексы. Текстурные координаты на экране выглядят не правильными.
Раньше экспортер собирал готовые полигоны без индексов. Все работало и экспортировалось правильно.
Экспорт делаю так.
Сначала поиск максимальной текстурной координаты tv( Y ) (их надо переворачивать) для текущего материала.
везде учитывается порядок обхода греней. стандартный экспорт индексов для полигонов.
далее идет экспорт вершин тут лучше приведу кусок кода:
Вот что получилось в результате
что я делаю не так? Если нужен еще кусок окда то я могу запостить. Прошу помочь я в тупике :(
Спасибо всем заранее!
С уважением Андрей.
Решил переделать экспортер что-бы экспортировались индексы. Текстурные координаты на экране выглядят не правильными.
Раньше экспортер собирал готовые полигоны без индексов. Все работало и экспортировалось правильно.
Экспорт делаю так.
Сначала поиск максимальной текстурной координаты tv( Y ) (их надо переворачивать) для текущего материала.
везде учитывается порядок обхода греней. стандартный экспорт индексов для полигонов.
далее идет экспорт вершин тут лучше приведу кусок кода:
// ранее записанный массив максимальных значений tv для каждого материала std::vector<float> MaxTV; // Описание вершины struct Vertex { // вершина Point3 v; // нормаль Point3 normal; //текстурная координата Point2 tvert; Vertex(); }; ... // массив учитывающий порядок обхода грани int orderPass[3]; ... // массив вершин std::vector<Vertex> writeVertices(nVertex); // цикл по граням for(j = 0; j < nTriangles; ++j) { // индекс материала int MatId = mesh.getFaceMtlIndex(j); // по 3 вершинам грани for(k = 0; k < 3; ++k) { // индекс вершины int vertexId = mesh.faces[j].v[orderPass[k]]; // индекс текстурной координаты int tvertexId = mesh.tvFace[j].t[orderPass[k]]; // получить вершину Point3 vec = mesh.verts[vertexId]; // обнулить 4 столбец чтобы не учитывалось смещение tm.SetRow(3, Point3(0.0f, 0.0f, 0.0f)); // записать без смещения writeVertices[vertexId].v = tm * vec; // обмен значениями std::swap(writeVertices[vertexId].v.z, writeVertices[vertexId].v.y); // Получение RVertex RVertex &rVert = mesh.getRVert(vertexId); // получить нормаль GetVertexNormal(mesh, j, rVert, writeVertices[vertexId].normal); // скопировать x по умолчанию writeVertices[vertexId].tvert.x = mesh.tVerts[tvertexId].x; // перевернуть y writeVertices[vertexId].tvert.y = MaxTV[MatId] - mesh.tVerts[tvertexId].y; } }
что я делаю не так? Если нужен еще кусок окда то я могу запостить. Прошу помочь я в тупике :(
Спасибо всем заранее!
С уважением Андрей.
Свой string и UNICODE | 16 мая 2007 | 12:19 | #24 |
---|
cppguru
>а вполне себе линейная (если выкинуть STL всякий, конечно ;)
а можно с этого места поподробней, пожалуйста.
>а вполне себе линейная (если выкинуть STL всякий, конечно ;)
а можно с этого места поподробней, пожалуйста.
необходимо кое-что похитрее std::vector | 15 мая 2007 | 13:09 | #6 |
---|
Lolmen
Ну это должно быть быстрей
Ну это должно быть быстрей
#ifdef STLPORT typedef std::hash_map<std::string, std::vector<Object *> > TYourSuperVector; #else typedef stdext::hash_map<std::string, std::vector<Object *> > TYourSuperVector; #endif
минимальное PPL (GLSL) | 15 мая 2007 | 13:00 | #28 |
---|
Vic3Dexe
хм... у меня все работает но стоит на машине VS2003 и VS2005
хм... у меня все работает но стоит на машине VS2003 и VS2005
DirectX *.X Формат VS свой формат VB | 15 мая 2007 | 12:38 | #2 |
---|
Nappster
твои модельки врядли кто-то так просто возьмет, да и попробовать распознать и вытянуть то что в твоем формате не так-то просто, при условии что он двоичный.
твои модельки врядли кто-то так просто возьмет, да и попробовать распознать и вытянуть то что в твоем формате не так-то просто, при условии что он двоичный.
минимальное PPL (GLSL) | 15 мая 2007 | 11:04 | #26 |
---|
lightmap
"1" - 224 FPS
"2" - 300 FPS
"3" - 240 FPS
GeForce 6600
"1" - 224 FPS
"2" - 300 FPS
"3" - 240 FPS
GeForce 6600
NULL_PTR
>Юзай glslvalidate от 3DLabs http://developer.3dlabs.com/downloads/glslvalidate/index.htm (680кб)
>Показывает типичные ошибки.
Спасибо бошое!! как возьмусь по серьезней за улучшения OpenGL рендeра обязательно покапаю!
LOD полигона | 14 мая 2007 | 14:45 | #4 |
---|
Cg vs GLSL | 12 мая 2007 | 22:35 | #14 |
---|
Zeux
спасибо пригодится...
спасибо пригодится...
Из OpenGL в DirectX крик души! | 12 мая 2007 | 3:44 | #40 |
---|
cppguru
>В топике http://www.gamedev.ru/code/forum/?id=63368 на драйверах ATI glBegin получился быстрее, чем любая ручная >политика VBO/Vertex arrays. Разработчики драйвера умеют их готовить лучше тебя.
>Впрочем, полагаться на драйвер плохо, и лучше использовать гарантированные решения через VBO.
мдя... очень удивлен... Но всятаки это такой частный случай... Что уж лучше VBO.
>В топике http://www.gamedev.ru/code/forum/?id=63368 на драйверах ATI glBegin получился быстрее, чем любая ручная >политика VBO/Vertex arrays. Разработчики драйвера умеют их готовить лучше тебя.
>Впрочем, полагаться на драйвер плохо, и лучше использовать гарантированные решения через VBO.
мдя... очень удивлен... Но всятаки это такой частный случай... Что уж лучше VBO.