Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > C++

Ответ
 
Опции темы
Старый 08.05.2011, 14:26   #16
s16s
AnyKey`щик
 
Аватар для s16s
 
Регистрация: 21.02.2011
Сообщений: 14
Написано одно полезное сообщение
Ответ: DirectX и C++

Вот создаю новую поверхность

//__________________________________________hero
ZeroMemory(&ddsd, sizeof(ddsd));
ddsd.dwSize=sizeof(ddsd);
ddsd.dwFlags=DDSD_CAPS|DDSD_HEIGHT|DDSD_WIDTH;
ddsd.ddsCaps.dwCaps=DDSCAPS_OFFSCREENPLAIN;
ddsd.dwHeight = 128;
ddsd.dwWidth = 742;
lpdd->CreateSurface(&ddsd, &pHero, NULL);
//___________________________________________

А функцию загрузки из файла я списал из самоучителя.
(Offline)
 
Ответить с цитированием
Старый 08.05.2011, 14:27   #17
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: DirectX и C++

pHero - здесь точно валидные данные?
(Offline)
 
Ответить с цитированием
Старый 08.05.2011, 14:32   #18
s16s
AnyKey`щик
 
Аватар для s16s
 
Регистрация: 21.02.2011
Сообщений: 14
Написано одно полезное сообщение
Ответ: DirectX и C++

Да. Это вот этот тип LPDIRECTDRAWSURFACE7
(Offline)
 
Ответить с цитированием
Старый 09.05.2011, 14:46   #19
s16s
AnyKey`щик
 
Аватар для s16s
 
Регистрация: 21.02.2011
Сообщений: 14
Написано одно полезное сообщение
Ответ: DirectX и C++

Проблема как оказалось не в коде. Я сохранил картинку с сжатием, и в результате отображение происходило с глюками.
(Offline)
 
Ответить с цитированием
Старый 09.05.2011, 23:26   #20
s16s
AnyKey`щик
 
Аватар для s16s
 
Регистрация: 21.02.2011
Сообщений: 14
Написано одно полезное сообщение
Ответ: DirectX и C++

Вроде разобрался с DirectDraw. Но теперь проблема в DirectInput.

На строчке lpdikey->SetDataFormat(&c_dfDIKeyboard); выдаёт вот такую ошибку на стадии сборки:

dinput.lib(dilib2.obj) : fatal error LNK1103 : debugging information corrupt; recompile module Error executing link.exe.

Кто нибудь помогите.

Последний раз редактировалось s16s, 10.05.2011 в 16:18.
(Offline)
 
Ответить с цитированием
Старый 10.05.2011, 21:26   #21
s16s
AnyKey`щик
 
Аватар для s16s
 
Регистрация: 21.02.2011
Сообщений: 14
Написано одно полезное сообщение
Ответ: DirectX и C++

Ну, сам спрашиваю, сам и ответы ищу.

Проблема была в том, что в папке было две либы: dinput.lib и dinput8.lib.
Компилятор ругался на dinput.lib, и я переместил эту либу из папки. Почему-то это помогло.
(Offline)
 
Ответить с цитированием
Старый 15.05.2011, 21:13   #22
616}[aKeP
Нуждающийся
 
Аватар для 616}[aKeP
 
Регистрация: 23.02.2011
Сообщений: 54
Написано 3 полезных сообщений
(для 5 пользователей)
Ответ: DirectX и C++

Люди помогите, проблемка. Не могу понять почему, когда задаю значения цвета материала в DirectX, он принемает значения и округляет их, тоесть я не могу задать цвет.

l.Diffuse.r=1.0f;
l.Diffuse.g=1.0f;
l.Diffuse.b=1.0f;

l.Ambient.r=0.4f;
l.Ambient.g=0.5f;
l.Ambient.b=0.0f;

Получаеться та часть объекта, что не освещается, ярко желтого цвета, как будто я задал значения.

l.Ambient.r=1.0f;
l.Ambient.g=1.0f;
l.Ambient.b=0.0f;


Кто знает в чем проблема?
(Offline)
 
Ответить с цитированием
Старый 18.05.2011, 13:36   #23
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений
(для 863 пользователей)
Ответ: DirectX и C++

Создаю куб. Делаю вершинный буфер, в котором 8 вершин. ПОтом индексный буфер, в нем все 12 треугольников.
Куб рисуется верно, но при вращении наблюдается фэйл (exe в аттаче)
Автор самоучителя создавал для каждой стороны куба по 4 вершины, а я решил сэкономить.

Кто знает, в чем фэйл?
Вложения
Тип файла: exe DX.exe (867.4 Кб, 839 просмотров)
(Offline)
 
Ответить с цитированием
Старый 18.05.2011, 13:41   #24
Nex
Гигант индустрии
 
Аватар для Nex
 
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений
(для 3,298 пользователей)
Ответ: DirectX и C++

а я решил сэкономить
Видимо в этом. Наверно где то не разобрался и не учел отсутствие 4 вершин...
(Offline)
 
Ответить с цитированием
Старый 18.05.2011, 13:53   #25
falcon
Разработчик
 
Аватар для falcon
 
Регистрация: 12.07.2008
Сообщений: 523
Написано 196 полезных сообщений
(для 470 пользователей)
Ответ: DirectX и C++

если я прально понял "фэйл", то проблема в неправильном обходе вершин.
правь индексный буфер.

p.s. если у тебя 4 вершины, то потом, когда у каждой вершины будет ещё и нормаль, увидишь ещё один занимательный "фэйл".
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо falcon за это полезное сообщение:
HolyDel (18.05.2011), Mr_F_ (18.05.2011), Reizel (18.05.2011)
Старый 18.05.2011, 17:56   #26
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: DirectX и C++

Кто знает, в чем фэйл?
в Z-тесте ясен пень! точнее в его отсутсвии

SetRenderState(D3DRS_ZENABLE ,D3DZB_TRUE);
SetRenderState(D3DRS_ZWRITEENABLE ,true);
и да - на вершинах не экономь
пойдут нормали и текстурные координаты и придет твоей экономии фейлец.
(Offline)
 
Ответить с цитированием
Старый 18.05.2011, 19:00   #27
616}[aKeP
Нуждающийся
 
Аватар для 616}[aKeP
 
Регистрация: 23.02.2011
Сообщений: 54
Написано 3 полезных сообщений
(для 5 пользователей)
Ответ: DirectX и C++

А про маю проблемку кто-нибудь, что-нибудь знает!
(Offline)
 
Ответить с цитированием
Старый 18.05.2011, 20:20   #28
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: DirectX и C++

616}[aKeP ну ты же ничего не сказал. надо код показать или ексешник хотя-бы
шейдеры там которыми рисуешь
или там настройки материала еще

может ты геометрию с аддиативны блендингом 15 разв одно место рисуешь?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
falcon (18.05.2011)
Старый 19.05.2011, 10:29   #29
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений
(для 863 пользователей)
Ответ: DirectX и C++

C кубом разобрался. Дело оказалось в отсутствии Z-буфера, отсечения и согласованности вершин (или сторон?).
Теперь другой вопрос.
У меня 2 куба. Один позади другого. Камера вращается вокруг них. Если вызывать 2 раза DrawPrimitive, они будут рисоваться поверх друг друга, или при определенных обстоятельствах задний будет перекрывать передний?
(Offline)
 
Ответить с цитированием
Старый 19.05.2011, 14:02   #30
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: DirectX и C++

ну zbuffer и нужен чтобы осуществлять проверку находится ли глубина рисуемого пикселя за глубиной уже отрисованных, если да, то не рисуется, если нет, то рисуется.
2 куба правильно загородят друг друга как их не рисуй.
правда лучше рисовать сначала передний, т.к. на пиксели, которые загородятся им у заднего, не надо будет считать шейдер/делать выборки.
такая сортировка может давать нехилый прирост, я рендерил лес когда - без сортировки было около 8 фпс (сотни тысяч деревьев), с сортировкой - 40.
а если объекты должны быть полупрозрачными то их по-любому придётся сортировать наоборот от задних к передним.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Reizel (19.05.2011)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 14:07.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com