Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Direct X, Проблема с вершинами 
:(
    Опции темы
Dray
  Дата 25.3.2005, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Материалист
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 7.10.2003
Где: г. Всеволожск

Репутация: нет
Всего: 6



Visual C++ 6 DirectX9

Требуется сделать обычный куб.
Делаю так:

Код

HRESULT InitVB()
{
    MYVERTEX vers[]={
        {-1, 1, 0, 0xFF0000FF},
        { 0, 0, 0, 0xFF0000FF},
        {-1, 0, 0, 0xFF0000FF},
        
        {-1, 1, 0, 0xFF0000FF},    
        { 0, 1, 0, 0xFF0000FF},
        { 0, 0, 0, 0xFF0000FF},
        
        { 0, 1, 0, 0xFF00FF00},
        { 0, 0,-1, 0xFF00FF00},
        { 0, 0, 0, 0xFF00FF00},
        
        { 0, 1, 0, 0xFF00FF00},
        { 0, 1,-1, 0xFF00FF00},
        { 0, 0,-1, 0xFF00FF00},
        
        {-1, 0,-1, 0xFFFF0000},
        { 0, 0,-1, 0xFFFF0000},
        {-1, 1,-1, 0xFFFF0000},
        
        { 0, 1,-1, 0xFFFF0000},
        {-1, 1,-1, 0xFFFF0000},
        { 0, 0,-1, 0xFFFF0000},
        
        {-1, 1, 0, 0xFF00FFFF},
        {-1, 0, 0, 0xFF00FFFF},
        {-1, 0,-1, 0xFF00FFFF},
        
        {-1, 1,-1, 0xFF00FFFF},
        {-1, 1, 0, 0xFF00FFFF},
        {-1, 0,-1, 0xFF00FFFF},
        
        {-1, 1, 0, 0xFFFF00FF},
        {-1, 1,-1, 0xFFFF00FF},
        { 0, 1, 0, 0xFFFF00FF},
        
        {-1, 1,-1, 0xFFFF00FF},
        { 0, 1,-1, 0xFFFF00FF},
        { 0, 1, 0, 0xFFFF00FF},
        
        {-1, 0, 0, 0xFFFFFF00},
        { 0, 0, 0, 0xFFFFFF00},
        { 0, 0,-1, 0xFFFFFF00},
        
        {-1, 0, 0, 0xFFFFFF00},
        { 0, 0,-1, 0xFFFFFF00},
        {-1, 0,-1, 0xFFFFFF00},
    };
    p_Dev->CreateVertexBuffer(3*sizeof(MYVERTEX), 0, D3DFVF_XYZ|D3DFVF_DIFFUSE, 
        D3DPOOL_DEFAULT, &pVB, NULL);
    
    VOID *pVer;
    pVB->Lock (0, sizeof (vers), (void **) &pVer, 0);
    memcpy (pVer, vers, sizeof (vers));
    pVB->Unlock();
    return S_OK;
};


Отрисовка:

Код

VOID Render()
{
    p_Dev->Clear (0, 0, D3DCLEAR_TARGET, D3DCOLOR_XRGB(255, 255, 255), 1, 0);
    p_Dev->BeginScene();

    SetUpMat();
    //Otrisovka
    p_Dev->SetStreamSource(0, pVB, 0, sizeof (MYVERTEX));
    p_Dev->SetFVF(D3DFVF_XYZ|D3DFVF_DIFFUSE);

    p_Dev->DrawPrimitive(D3DPT_TRIANGLELIST, 0, 12);

    p_Dev->EndScene();
    p_Dev->Present(0,0,0,0);
};


При запуске возникает Runtime Error. Ошибка видимо где-то здесь:

{-1, 0, 0, 0xFFFFFF00},
{ 0, 0, 0, 0xFFFFFF00},
{ 0, 0,-1, 0xFFFFFF00},

{-1, 0, 0, 0xFFFFFF00},
{ 0, 0,-1, 0xFFFFFF00},
{-1, 0,-1, 0xFFFFFF00},

т. к. Если закомментировать, то все нормально.
Я непойму, что здесь может быть не правильно. Помогите пожалуйста разобраться. smile


--------------------
忍者

user posted image
PM MAIL   Вверх
Dray
Дата 29.3.2005, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Материалист
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 7.10.2003
Где: г. Всеволожск

Репутация: нет
Всего: 6



Все разобрался. smile Ошибка сдесь:
Код

p_Dev->CreateVertexBuffer(3*sizeof(MYVERTEX), 0, D3DFVF_XYZ|D3DFVF_DIFFUSE, 
        D3DPOOL_DEFAULT, &pVB, NULL);

А именно 3*sizeof(MYVERTEX). Надо умножать не на 3, а на 3 * на колличество треугольников. В данном случае на 36.


--------------------
忍者

user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0386 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.