Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Вращающийся КУБ DirectX 9.0 вопрос  (Прочитано 2720 раз)
0 Пользователей и 1 Гость смотрят эту тему.
SaintShadow
Новенький

ua
Offline Offline

« : 24-12-2012 23:22 » 


Приветствую, вопрос такой.
MSVS2012 ultimate edition
Недавно начал изучать DirectX, начал с 9 версии, по книге Фленова "Исскуство DirectX".
Пытаюсь сделать вращающийся куб. Вот часть кода.
Код:

struct sVertex
{float x,y,z;
DWORD color;};

void CreateQuad()
{
const sVertex svVortexList[] = {
-0.5f, -0.5f, -0.5f, 0x00ff0000,
-0.5f, 0.5f, -0.5f, 0x00ff0000,
0.5f, -0.5f, -0.5f, 0x00ff0000,
0.5f, 0.5f, -0.5f, 0x00ff0000,

0.5f, -0.5f, -0.5f, 0x0000ff00,
0.5f, 0.5f, -0.5f, 0x0000ff00,
0.5f, -0.5f, 0.5f, 0x0000ff00,
0.5f, 0.5f, 0.5f, 0x0000ff00,

0.5f, -0.5f, 0.5f, 0x000000ff,
0.5f, 0.5f, 0.5f, 0x000000ff,
-0.5f, -0.5f, 0.5f, 0x000000ff,
-0.5f, 0.5f, 0.5f, 0x000000ff,

-0.5f, -0.5f, 0.5f, 0x00ffff00,
-0.5f, 0.5f, 0.5f, 0x00ffff00,
-0.5f, -0.5f, -0.5f, 0x00ffff00,
-0.5f, 0.5f, -0.5f, 0x00ffff00,

-0.5f, 0.5f, -0.5f, 0x0000ffff,
-0.5f, 0.5f, 0.5f, 0x0000ffff,
0.5f, 0.5f, -0.5f, 0x0000ffff,
0.5f, 0.5f, 0.5f, 0x0000ffff,

0.5f, -0.5f, -0.5f, 0x00ff00ff,
0.5f, -0.5f, 0.5f, 0x00ff00ff,
-0.5f, -0.5f, -0.5f, 0x00ff00ff,
-0.5f, -0.5f, 0.5f, 0x00ff00ff,
};

const unsigned short Idxes[]={

0,1,2,2,1,3,
4,5,6,6,5,7,
8,9,10,10,9,11,
12,13,14,14,13,15,
16,17,18,18,17,19,
20,21,22,22,21,23,
};


void SetView()
{
D3DMATRIX View = {
1, 0, 0, 0,
0, 1, 0, 0,
0, 0, 1, 0,
0, 1, 10, 1,
};
pD3DDevice->SetTransform(D3DTS_VIEW, &View);
}
и тут сразу 3 проблемы.....

1) void CreateQuad() как бы я не пытался изменить цвет на экране появляеться куб, с половиной граней - черного цвета, и половиной граней цвета фона, пытался ставить везде 0x00000000 и 0xffffffff, а также выставлять цифры, на фвет это не влияет....
2)const unsigned short Idxes[] судя по объяснению автора, все здесь должно быть хорошо, т.к. координаты по часовой стрелке, но почему только половина граней закрашивается, а другая я так понимаю остается прозрачной, поменяв значения я добился того что все грани стали черного цвета, построив треугольники против часовой
0, 2, 1, 2,3,1,
4, 6, 5, 6, 7, 5,
8, 10, 9, 10, 11, 9,
12, 14, 13, 14, 15, 13,
16, 18, 17, 18, 19, 17,
20, 22, 21, 22, 23, 21,
но толку мало, границы не выделены, так что отображается "дышащий прямоугольник"

3)void SetView()
расстояние по оси Z автор давал 5 у меня это вылилось в отказ отображать куб напрочь, куб стал отображаться только начиная с 10, но сразу, достаточно далеко от камеры.

целый день выискиваю ошибки этого кода, скурил 3 пачки сигарет.... подскажите пожалуйста.
предложения поджечь книгу и тушить её мочой, прошу не предлагать Улыбаюсь
Записан
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 25-12-2012 04:08 » 

а предложения воспользоваться поиском можно оставлять ? ))))
http://forum.shelek.ru/index.php/topic,17971.0.html

бросай курить
Записан

SaintShadow
Новенький

ua
Offline Offline

« Ответ #2 : 25-12-2012 09:59 » 

Я уже читал эту тему, даже не близко к моей проблеме у меня с вращением все в порядке, у меня с цветом траблы...
Если бы поиск помог, я бы не создавал тему...
Записан
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #3 : 27-12-2012 10:42 » new

SaintShadow,

ну так ты пишешь )
>>Пытаюсь сделать вращающийся куб
!!!

По поводу прозрачных граней - всё верно, векторы нормалей должны быть все наружу. Направление n - по правилу буравчика (обход рёбер полигона - направление вращения ручки буравчика, ход буравчика показывает вектор нормали)

Насчёт черноты: насколько я понимаю, включен режим освещения, но самогО освещения не поставлено. Вот тут про, например, свет было http://forum.shelek.ru/index.php/topic,18027.0.html

сам я уже детали не помню Улыбаюсь
Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines