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

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

Матрицы и передвижения отдельных объектов19 сен. 200610:38#7
DarkVampire
Переходи на Scene Graph потом будет легче смотри движки Ogre, Irrlicht.
Зацените библиотеку19 сен. 200610:27#23
rAvEn
>Да в общем-то кто как :) Если ты имеешь в виду Id Software, то я их исходников не видел :)
>Id вообще хитра на выдумки, не сомневаюсь, что и здесь они придумали что-нибудь необычное.
>Большинство примеров с Md5, которые я видел, рендерят "как есть", безо всяких там премудростей.
Не за что не поверю!!!!
в моделях дума будет минимум 10000 полигонов !!! теперь добавь еще сорнтировку по материалам скелетную анимацию.
и какова скорость будет если рендерить через glBegin/glEnd полубому вершинный и индексный буферы.
Зацените библиотеку18 сен. 200618:10#17
rAvEn
вот мое мыло.

>> Я думаю ситуация с Md5 изменилась в корне
>А вот и не угадал :)
очень интересно... неужели рендерят без ARB_Vertex_buffer_Object ?
Зацените библиотеку18 сен. 200614:25#15
rAvEn
>> Можно вместе попробывать обменятся опытом интересует загрузка MD5.
>Про загрузку MD5 можно много статей найти в буржунете.
дай ссылку хоть на одну, может плохо рыл google но натыкался тоько на MD5 алгоритм но не формат.
>> Далее интересует загрузка Md3 моделей в плане масштабирования.
>Насчет масштабирования не понял. Если ты о геометрии так что-ж тут сложного. Dot product еще никто не отменял :)
я не смог отмасштабировать модель у меня голова от туловища ренлдериться на каком-то расстоняии.
вот Я про вот это участок кода:
// For some reason, the ratio 64 is what we need to divide the vertices by,
    // otherwise the model is gargantuanly huge!  If you use another ratio, it
    // screws up the model's body part position.  I found this out by just
    // testing different numbers, and I came up with 65.  I looked at someone
    // else's code and noticed they had 64, so I changed it to that.  I have never
    // read any documentation on the model format that justifies this number, but
    // I can't get it to work without it.  Who knows....  Maybe it's different for
    // 3D Studio Max files verses other software?  You be the judge.  I just work here.. :)
    currentMesh.pVerts[i].x =  m_pVertices[i].vertex[0] / 64.0f;
    currentMesh.pVerts[i].y =  m_pVertices[i].vertex[1] / 64.0f;
    currentMesh.pVerts[i].z =  m_pVertices[i].vertex[2] / 64.0f;
Еще 1 момент. Самое главное это быстро и по современному отрендерить md2, md3 модели. Насколько мне известно
под OpenGL там идет рендер через glBegin/glEnd  (для Dirct3D версии у себя я сделал DrawPrimitiveUp)
т.е. надо переделать правильно рендер. Загнать это все в 1 вершинный и индексный буфер. составлять я думаю его нужно при помене анимации.
т.е. Lock/Unlock. Тут можно посмотреть в строну Cal3d(http://home.gna.org/cal3d/) там сделано именно так.) В проитианом случае  будет малый FPS для этих моделей.
к примеру модель из Cal3d ренлдериться за 3-4 вызова и там несколько материалов и 3000-4000 полигонов. md2,md3 модели имею число полигонов меньше 2000 и рендеряться почти по 1 полигону!!! Я думаю ситуация с Md5 изменилась в корне.

Зацените библиотеку18 сен. 200612:44#12
rAvEn
Удали пожалуйста с архивов файлы:
  • .ncb
  • .opt
  • .plg
  • Зацените библиотеку18 сен. 200612:38#11
    rAvEn
    Можно вместе попробывать обменятся опытом  интересует загрузка MD5,
    смотри www.steps3d.narod.ru там Боресков готовит статью очень пригодиться.
    Далее интересует загрузка Md3 моделей в плане масштабирования. А что за формат *.obj он где применяется?
    qsort()14 сен. 200612:50#8
    _vip_
    ой извиняюсь чуть ошибся ;(
    const
    >>Легко ! Могу даже абзац из книжки effective STL выдать ! с цифрами и всем чем положено !
    >Книжка это хорошо, но желательно тесты, которые применимы к геймдеву, а не ко всем областям одновременно.
    на больших массивах qsort будет часть вызывать функцию сравнения, std::sort  вставит алгоритм без вызова, в том числе и функцию сравнения. Для пущей уреренности объявить ее как __forceinline(Visual C++), always_inline(gcc) и все.
    qsort()14 сен. 200612:17#2
    lol
    попробуй поменнять вот так:
    ...
    int z1 = *reinterpret_cast<const int*>(elem1);
     int z2 = *reinterpret_cast<const int*>(elem2);
    ...

    Правка забыл разименовать...

    Правка: 14 сен. 2006 12:51

    Преобразование координат12 сен. 200613:12#1
    integer
    Projects a 3D vector from object space into screen space.

    D3DXVECTOR3 * D3DXVec3Project(
      D3DXVECTOR3 * pOut,
      CONST D3DXVECTOR3 * pV,
      CONST D3DVIEWPORT9 * pViewport,
      CONST D3DXMATRIX * pProjection,
      CONST D3DXMATRIX * pView,
      CONST D3DXMATRIX * pWorld
    );

    Lua и таблицы.11 сен. 200619:49#13
    limk
    Спасибо!! посмотрю ;)
    скажу что получилось :)
    Lua и таблицы.11 сен. 200614:21#11
    Ghost Dragon
    Не заходит!!
    после lua_pcall делаю lua_tostring(L, -1);
    а потом твой код. Не заходит в if :(
    Runtime error! (подскажите что она может означать)11 сен. 20069:36#25
    lebron
    один из вариантов это т что сказал Vadun
    поробуй сделать так, заверни всю работу приложения в блок try... catch:
    #include <exception>
    
    try {
    ....
    }
    catch(const std::exception& ex) {
    fprintf(stderr, %s%s%s", "C++ exception: ", ex.what(), "\n");
    }
    catch(...) {
    fprintf(stderr, %s", "Unknown Exception!!!");
    }
    std::exception может кинуть: контенеры STL(к примеру std::length_error), оператор new(std::bad_alloc), опретор typeid (std::bad_typeid), dynamic_cast(std::bad_cast) и многие друге бибилиотеки которые при проектировании могут создавать классы исключений наследуя от std::exception
    используя этот код ты точно можешь избавиться от этого исключения и перехватить наиболее известные исключения стандартной бибилиотеки C++, в крайнем слечай ты попадешь в блок catch(...)
    В среде отладки поставь опцию(Debug/Exceptions/C++ Exceptions - Break into the debugger) выходить в отладчик при возникновении сиключения и найдешь ошибку.
    Lua и таблицы.8 сен. 200617:20#9
    Ghost Dragon
    А как пользоваться твоим кодом? туда вообще не заходит я даже специальнос сделал ошибку.
    Lua и таблицы.8 сен. 200617:04#8
    Дмитрий Ясенев
    >если вам выдаёт ошибку, то дайте нам описание её (runtime error - это тип ошибки, Луа выдаёт ещё и детальное описание)
    действительно это помогло
    я ее получил через
    lua_tostring(luaState, -1); 
    после вызова lua_pcall
    и вот то выдало Lua API:
    Description: Scripts/initlevel.lua:3: attempt to call global 'TB_Init' (a nil value)
    и я понял в чем дело.
    Ghost Dragon
    Большое спасибо за код буду разбираться!!!
    Я пока не буду тему закрывать может еще вопросы будут.
    Lua и таблицы.8 сен. 200615:28#5
    Дмитрий Ясенев
    Я так делал на тестовом примере таблица инициализируеться корректно. Когда я такой способ попробывал применить к 3 массивам, то после загрузки 15 файлов с скриптами  то все объекты на уровне перестали двигаться :( . Lua API выдает ту-же ошибку
    A runtime error.

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

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