На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела "Программирование графики"
1) Данный раздел предназначен для обсуждения проблем, возникающих при программировании задач, связанных с чтением, сохранением, обработкой, созданием, отрисовкой графической информации (в том числе - 3D [OpenGL, Direct3D] и анимации [в т.ч. VFW, DirectShow, OpenDML]).
Флэш обсуждают здесь!.

2) Если вы хотите получить совет для конкретной платформы/языка программирования, обязательно укажите их в вопросе.

3) Уважаемые новички! Мы приветствуем Ваше желание научить всех посетителей раздела правильному программированию. Но огромная просьба, перед тем, как писать поучения в старых (последний ответ - "старее" месяца, а особенно, если вопрошавший не появляется на форуме уже не первый месяц, в чем можно убедиться в его профиле) темах, хорошо подумать, будет ли кому-нибудь, кроме Вас cамих, это интересно.



Ваше мнение о модераторах: user posted imageBarazuk, user posted imageOpenGL, user posted imageMikle
Модераторы: OpenGL, Mikle
  
> отрисовка одних и тех же объектов разным цветом , Direct3D
    Приветствую

    отрисовываю поле, состоящее из квадратов разного цвета
    для этого использую такой вершинный буфер

    ExpandedWrap disabled
      #define D3DFVF_CAGEVERTEX ( D3DFVF_XYZ | D3DFVF_DIFFUSE )
       
      struct CAGEVERTEX { D3DXVECTOR3 f3Pos; DWORD color; };
       
      #define EMPTY_COLOR             D3DCOLOR_XRGB(0, 0, 0)
      #define RED_COUNTER_COLOR       D3DCOLOR_XRGB(192, 0, 0)
      #define BLUE_COUNTER_COLOR      D3DCOLOR_XRGB(0, 0, 192)
      #define MARGIN_COUNTER_COLOR    D3DCOLOR_XRGB(192, 0, 192)
      #define LMARGIN_COUNTER_COLOR   D3DCOLOR_XRGB(255, 192, 255)
       
      CAGEVERTEX g_pCageVertices[] =
      {
          { D3DXVECTOR3(-0.5f, -0.5f, 1.0f), EMPTY_COLOR, },
          { D3DXVECTOR3( 0.5f, -0.5f, 1.0f), EMPTY_COLOR, },
          { D3DXVECTOR3( 0.5f,  0.5f, 1.0f), EMPTY_COLOR, },
          { D3DXVECTOR3(-0.5f,  0.5f, 1.0f), EMPTY_COLOR, },
       
          { D3DXVECTOR3(-0.5f, -0.5f, 1.0f), RED_COUNTER_COLOR, },
          { D3DXVECTOR3( 0.5f, -0.5f, 1.0f), RED_COUNTER_COLOR, },
          { D3DXVECTOR3( 0.5f,  0.5f, 1.0f), RED_COUNTER_COLOR, },
          { D3DXVECTOR3(-0.5f,  0.5f, 1.0f), RED_COUNTER_COLOR, },
       
          { D3DXVECTOR3(-0.5f, -0.5f, 1.0f), BLUE_COUNTER_COLOR, },
          { D3DXVECTOR3( 0.5f, -0.5f, 1.0f), BLUE_COUNTER_COLOR, },
          { D3DXVECTOR3( 0.5f,  0.5f, 1.0f), BLUE_COUNTER_COLOR, },
          { D3DXVECTOR3(-0.5f,  0.5f, 1.0f), BLUE_COUNTER_COLOR, },
       
          { D3DXVECTOR3(-0.5f, -0.5f, 1.0f), MARGIN_COUNTER_COLOR, },
          { D3DXVECTOR3( 0.5f, -0.5f, 1.0f), MARGIN_COUNTER_COLOR, },
          { D3DXVECTOR3( 0.5f,  0.5f, 1.0f), MARGIN_COUNTER_COLOR, },
          { D3DXVECTOR3(-0.5f,  0.5f, 1.0f), MARGIN_COUNTER_COLOR, },
       
          { D3DXVECTOR3(-0.5f, -0.5f, 1.0f), LMARGIN_COUNTER_COLOR, },
          { D3DXVECTOR3( 0.5f, -0.5f, 1.0f), LMARGIN_COUNTER_COLOR, },
          { D3DXVECTOR3( 0.5f,  0.5f, 1.0f), LMARGIN_COUNTER_COLOR, },
          { D3DXVECTOR3(-0.5f,  0.5f, 1.0f), LMARGIN_COUNTER_COLOR, },
      };


    мне кажется это как-то уж очень топорно
    можно ли упростить? свести все к 4 вершинам, а цвет задавать как-то отдельно
    если да, то не скажется ли это на скорости
    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
    0 пользователей:


    Рейтинг@Mail.ru
    [ Script execution time: 0,0604 ]   [ 15 queries used ]   [ Generated: 30.03.24, 01:17 GMT ]