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

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

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

Ответ
 
Опции темы
Старый 27.07.2011, 15:18   #46
616}[aKeP
Нуждающийся
 
Аватар для 616}[aKeP
 
Регистрация: 23.02.2011
Сообщений: 54
Написано 3 полезных сообщений
(для 5 пользователей)
Ответ: DirectX и C++

Переопределил DWORD_PTR все скомпилировалось. Вопрос, а почему в dsound этот тип не переопределен или какой хедер мне поключить, чтоб не надо было самому переопределять?
(Offline)
 
Ответить с цитированием
Старый 06.08.2011, 17:25   #47
616}[aKeP
Нуждающийся
 
Аватар для 616}[aKeP
 
Регистрация: 23.02.2011
Сообщений: 54
Написано 3 полезных сообщений
(для 5 пользователей)
Ответ: DirectX и C++

Люди, а как сделать, что бы 3д объект был сглаженым, как стандартная сфера? Ведь она не такая гладкая и ровная. Я создал поверхность 20 на 20 точек и мне нужно, что бы поверхность была сглаженой.
(Offline)
 
Ответить с цитированием
Старый 07.08.2011, 19:40   #48
616}[aKeP
Нуждающийся
 
Аватар для 616}[aKeP
 
Регистрация: 23.02.2011
Сообщений: 54
Написано 3 полезных сообщений
(для 5 пользователей)
Ответ: DirectX и C++

Все, ура!! Разобралься сам. Весь инет облазил. Оказывается, чтобы добиться эффекта сглажености, надо нормали высчитывать, как среднее арефметическое от нормалей смежных поверхностей.
(Offline)
 
Ответить с цитированием
Старый 13.08.2011, 16:01   #49
616}[aKeP
Нуждающийся
 
Аватар для 616}[aKeP
 
Регистрация: 23.02.2011
Сообщений: 54
Написано 3 полезных сообщений
(для 5 пользователей)
Ответ: DirectX и C++

А вот и я, опять с проблемой, а точнее с вопросом и не с одним, а с несколькими.
1)Я хочу использовать прозрачность, включаю альфа смешивание, а оно происходит без учета z буфера. Тоесть за прозрачной сферой отрисовываютяся только те объекты, которые были уже отрисованы до сферы. Вопрос, как сделать если это возможно, чтобы буффер глубины учитывался при смешивании?

2)Кто-нибудь знает, где можно найти статьи по кубическим отражения и использовании IDirect3DCubeTexture, для реализации зеркала например?

3)И третий вопрось, можно ли сделать bump эффект не используя шэйдеры и если да то как?
(Offline)
 
Ответить с цитированием
Старый 13.08.2011, 16:27   #50
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: DirectX и C++

Вопрос, как сделать если это возможно, чтобы буффер глубины учитывался при смешивании?
альфа объекты надо рисовать, когда уже были отрисованы те, что сзади них.
2)Кто-нибудь знает, где можно найти статьи по кубическим отражения и использовании IDirect3DCubeTexture, для реализации зеркала например?
можешь хоть на блице посмотреть примеры использования кубмапов. работа конкретно с IDirect3DCubeTexture тривиальна, можешь глянуть хелп сдк.
3)И третий вопрось, можно ли сделать bump эффект не используя шэйдеры и если да то как?
лучше сказать, что нельзя, т.к. безшейдерные бампы выглядит убого.
(Offline)
 
Ответить с цитированием
Старый 13.08.2011, 16:50   #51
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: DirectX и C++

1)
device->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
device->SetRenderState(D3DRS_ZWRITEENABLE, FALSE);
device->SetRenderState(D3DRS_ZFUNC, D3DCMP_LESSEQUAL);
для сферы. и полупрозрачные объекты надо рисовать после непрозрачных в порядке от дальних к ближним.

2)
 
LPDIRECT3DCUBETEXTURE9 CubeMap;

m_d3dDevice->CreateCubeTexture(8192, 1, D3DUSAGE_RENDERTARGET, D3DFMT_R8G8B8,	D3DPOOL_DEFAULT, &CubeMap);

....
...
CubeMap->GetCubeMapSurface(D3DCUBEMAP_FACE_POSITIVE_X, 0, &pRenderSurface);
device->SetRenderTarget(0,pRenderSurface);

  device->Clear(0,
                           NULL,
                           D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER,
                           D3DCOLOR_XRGB(0,0,0),
                           1.0f,
                           0);
  device->BeginScene();
и так 6 раз.
меняешь взгляд камеры и D3DCUBEMAP_FACE_POSITIVE_X

3)да.
device->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_DOTPRODUCT3 );
device->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
device->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_NORMCUBEMAP );
и можешь третьим слоем еще наложить диффузмапу.
(Offline)
 
Ответить с цитированием
Старый 13.08.2011, 17:23   #52
616}[aKeP
Нуждающийся
 
Аватар для 616}[aKeP
 
Регистрация: 23.02.2011
Сообщений: 54
Написано 3 полезных сообщений
(для 5 пользователей)
Ответ: DirectX и C++

Спасибо большое!
Я знаю как писать в кубическую текстуру. Но как накладывать, как обычную текстуру или есть различия?

И еще, как сделать несколько проходов для одного уровня тукстур:

device->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_DOTPRODUCT3 );
device->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
device->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_NORMCUBEMAP );


device->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_MODULATE);
device->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_DIFFUSE);
device->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_TETXURE);


Я правильно понимаю?
(Offline)
 
Ответить с цитированием
Старый 13.05.2012, 05:46   #53
FireOwl
Бывалый
 
Аватар для FireOwl
 
Регистрация: 16.09.2009
Адрес: Sun system
Сообщений: 831
Написано 442 полезных сообщений
(для 1,836 пользователей)
Ответ: DirectX и C++

Что означает вот такое сообщение:
"Указанной команде требуется псевдоним либо имя файла, драйвера или устройства. Задайте его."
(Английский вариант звучит, насколько я понял, так:
"The specified command requires an alias, file, driver, or device name. Please supply one.")

Возникает оно при попытке вызова
mciExecute('play C:\\Windows\\Media\\flourish.mid')
из winmm.dll

Процесс гугления результатов не принес.
__________________
N"Gasta! Kvata! Kvakis!
Ahkstas so novajxletero (oix jhemile) so Ranetauw.
(Offline)
 
Ответить с цитированием
Старый 13.05.2012, 12:34   #54
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: DirectX и C++

mciExecute('play C:\\Windows\\Media\\flourish.mid')
как это связано с DX? o_0 где ты это вообще обнаружил?
и с чего это тут кавычки не двойные?
(Offline)
 
Ответить с цитированием
Старый 13.05.2012, 14:20   #55
FireOwl
Бывалый
 
Аватар для FireOwl
 
Регистрация: 16.09.2009
Адрес: Sun system
Сообщений: 831
Написано 442 полезных сообщений
(для 1,836 пользователей)
Ответ: DirectX и C++

Да, с DirectX не связано. Прошу скинуть в отдельную тему, если возможно.

Обнаружил при попытке проиграть MIDI не заморачиваясь с дополнительными библиотеками, средствами самого Windows.
Кавычки одиночные потому что Python (можно и двойные, разницы нет). Но темы по Python нет, а вызов системных dll в C++ также примерно происходит.

Полный код был такой:
import ctypestime
ctypes
.windll.winmm.mciExecute('play C:\\Windows\\Media\\flourish.mid')
time.sleep(10)
ctypes.windll.winmm.mciExecute('close C:\\Windows\\Media\\flourish.mid'
__________________
N"Gasta! Kvata! Kvakis!
Ahkstas so novajxletero (oix jhemile) so Ranetauw.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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