Пятница, 10 Мая 2024, 11:35

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум игроделов » Ресурсы и Примеры игр » 3D-моделирование и 3D-графика » DirectX 11 SDK (Извините, если запостил не туда)
DirectX 11 SDK
ClairdeluneДата: Суббота, 14 Июля 2012, 17:16 | Сообщение # 1
был не раз
Сейчас нет на сайте
Где можно украсть DirectX 11 SDK? Ну чтоб на C++ делать графику на DirectX 11.
Гуглил и яндексил. Выдаёт DirectX 9 под видом DirectX 11...
ArchidoДата: Суббота, 14 Июля 2012, 17:28 | Сообщение # 2
Сэнсэй
Сейчас нет на сайте
Точно не туда. У Microsoft есть, там и 9 и 10 и 11. SDK один, но заголовки и примеры под все версии.

C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ClairdeluneДата: Воскресенье, 15 Июля 2012, 08:36 | Сообщение # 3
был не раз
Сейчас нет на сайте
А есть книги по DX11 на русском?

Добавлено (15.07.2012, 08:36)
---------------------------------------------
Я вот на эту книжку жаловаться буду!

Во второй главе мы пишем вот такой вот код:

Code

#include<Windows.h>

LRESULT CALLBACK WndProc( HWND hwnd, UINT message,
WPARAM wParam, LPARAM lParam );
int WINAPI wWinMain( HINSTANCE hInstance, HINSTANCE prevInstance,
LPWSTR cmdLine, int cmdShow )
{
UNREFERENCED_PARAMETER( prevInstance );
UNREFERENCED_PARAMETER( cmdLine );
WNDCLASSEX wndClass = { 0 };
wndClass.cbSize = sizeof( WNDCLASSEX ) ;
wndClass.style = CS_HREDRAW | CS_VREDRAW;
wndClass.lpfnWndProc = WndProc;
wndClass.hInstance = hInstance;
wndClass.hCursor = LoadCursor( NULL, IDC_ARROW );
wndClass.hbrBackground = ( HBRUSH )( COLOR_WINDOW + 1 );
wndClass.lpszMenuName = NULL;
wndClass.lpszClassName = "DX11BookWindowClass";
if( !RegisterClassEx( &wndClass ) )
return -1;
RECT rc = { 0, 0, 640, 480 };
AdjustWindowRect( &rc, WS_OVERLAPPEDWINDOW, FALSE );
HWND hwnd = CreateWindowA( "DX11BookWindowClass", "Blank Win32 Window",
WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, rc.right - rc.
left,
rc.bottom - rc.top, NULL, NULL, hInstance, NULL );
if( !hwnd )
return -1;
ShowWindow( hwnd, cmdShow );
// Demo Initialize
MSG msg = { 0 };
while( msg.message != WM_QUIT )
{
if( PeekMessage( &msg, 0, 0, 0, PM_REMOVE ) )
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
// Update
// Draw
}
// Demo Shutdown
return static_cast<int>( msg.wParam );
}


Выдаёт:
Quote (Вывод - Построение)


1>------ Построение начато: проект: DX02, Конфигурация: Debug Win32 ------
1>Построение начато 15.07.2012 11:33:32.
1>InitializeBuildStatus:
1> Обращение к "Debug\DX02.unsuccessfulbuild".
1>ClCompile:
1> main.cpp
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z) в функции _wWinMain@16
1>C:\Users\<Это вам не интересно>\Documents\Visual Studio 2010\Projects\DX02\Debug\DX02.exe : fatal error LNK1120: 1 неразрешенных внешних элементов
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:01.12
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========


Как бороться?
404notfoundДата: Воскресенье, 15 Июля 2012, 08:40 | Сообщение # 4
участник
Сейчас нет на сайте
Clairdelune, у тебя не написано само тело функции WndProc. В книге дальше должен быть написан ее код.
ArchidoДата: Воскресенье, 15 Июля 2012, 08:42 | Сообщение # 5
Сэнсэй
Сейчас нет на сайте
нужна ф-ция WndProc, неужели нет ее? Можно сделать так: "wndClass.lpfnWndProc = DefWindowProc" . Но это не совсем правильно wink

Quote (Clairdelune)
А есть книги по DX11 на русском?

Самая лучшая книга по DX11 - это документация. Если знаешь 9-тый DX, то проблем не будет. А если не знаешь, то желательно сначала поучить DX9, ибо 11-тый посложнее будет.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)

Сообщение отредактировал Archido - Воскресенье, 15 Июля 2012, 08:44
ClairdeluneДата: Воскресенье, 15 Июля 2012, 08:55 | Сообщение # 6
был не раз
Сейчас нет на сайте
Один тёмный личност сказал, что лучше сразу DX11.

Добавлено (15.07.2012, 08:55)
---------------------------------------------

Quote (404notfound)
Clairdelune, у тебя не написано само тело функции WndProc. В книге дальше должен быть написан ее код.

О, спасибо!
ArchidoДата: Воскресенье, 15 Июля 2012, 09:13 | Сообщение # 7
Сэнсэй
Сейчас нет на сайте
Quote (Clairdelune)
Один тёмный личност сказал, что лучше сразу DX11.

И чем аргументировал? Ибо там чтобы простой квадрат нарисовать нужно писать кучу кода и использовать шейдеры, без особого опыта работы с другими GAPI разобраться будет ой как не просто. Т.е. ты сейчас идешь по пути наибольшего спопротивления.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
НохчиДата: Воскресенье, 15 Июля 2012, 09:27 | Сообщение # 8
заслуженный участник
Сейчас нет на сайте
Кстати там wndproc кривой по-моему была, будь внимателен когда код копипастить будешь.

Многие вопросы по Windows отпадут, если посмотреть тут
ClairdeluneДата: Воскресенье, 15 Июля 2012, 09:53 | Сообщение # 9
был не раз
Сейчас нет на сайте
Archido,

Quote (Я)
Если я сейчас изучу DirectX 9, то сложно ли будет переходить на DirectX 11, или там почти такой же код?

Quote (ArchiDevil)
Нет. Совершенно другой подход и другой код. Небо и земля, фактически. Рекомендую сразу DX10/11.


Добавлено (15.07.2012, 09:53)
---------------------------------------------
Не, ну не в ладах я с английским... Вторая половина второй главы достаточно тёмная...
Есть где-нибудь ЭТО на русском?
Или хотя бы полный код того, что там делается.


Сообщение отредактировал Clairdelune - Воскресенье, 15 Июля 2012, 09:53
warzesДата: Воскресенье, 15 Июля 2012, 10:01 | Сообщение # 10
участник
Сейчас нет на сайте
Quote (Clairdelune)
Как бороться?

научиться программировать... Извини, но серьезно, чтобы приступить к изучению DirectX/OpenGL, надо сначала выучить язык программирования и научиться понимать - что это за ошибки выдает твой компилятор, разобраться с тем - как дебажить в студии свой проект

Quote (Archido)
Самая лучшая книга по DX11 - это документаци

Не согласен. Раньше, во времена Dx9 - да, там хорошо все было описано. А сейчас откроешь описание какой-нибудь структуры, а там невразумительная строчка по которой совершенно ничего не понятно:
Quote
The ID3D11DeviceContext interface represents a device context which generates rendering commands.

Вот попробуй из этой строчки понять - что конкретно делает ID3D11DeviceContext, и когда его надо применять:)

Quote (Archido)
А если не знаешь, то желательно сначала поучить DX9, ибо 11-тый посложнее будет.

И будет писать в dx9-стиле на DX11... Потом будет на форумах спрашивать "куда делся IDirect3DVertexBuffer9 (это так, для примера)..." Dx9 и Dx11 - это разные GAPI, с совершенно разной философией.

Добавлено (15.07.2012, 10:01)
---------------------------------------------

Quote (Clairdelune)
Есть где-нибудь ЭТО на русском?

Тут, на английском многие книги не достать (борьба с варезом, такая борьба), а ты ищешь на русском:)


Мой блог
Вики DirectX
ClairdeluneДата: Воскресенье, 15 Июля 2012, 10:19 | Сообщение # 11
был не раз
Сейчас нет на сайте
Но всё-таки есть на русском?
НохчиДата: Воскресенье, 15 Июля 2012, 10:20 | Сообщение # 12
заслуженный участник
Сейчас нет на сайте
Нет.

Многие вопросы по Windows отпадут, если посмотреть тут
goldsphereДата: Воскресенье, 15 Июля 2012, 10:21 | Сообщение # 13
заслуженный участник
Сейчас нет на сайте
Quote (warzes)
И будет писать в dx9-стиле на DX11... Потом будет на форумах спрашивать "куда делся IDirect3DVertexBuffer9 (это так, для примера)..." Dx9 и Dx11 - это разные GAPI, с совершенно разной философией.

Вроде мелкомягкие его низкоуровневый код переписывали почти с нуля.


FinderX - Android Аркада
ClairdeluneДата: Воскресенье, 15 Июля 2012, 10:33 | Сообщение # 14
был не раз
Сейчас нет на сайте
Или хотя бы полный код того, что там делается (в 2-й главе книги)?

Сообщение отредактировал Clairdelune - Воскресенье, 15 Июля 2012, 10:38
НохчиДата: Воскресенье, 15 Июля 2012, 10:36 | Сообщение # 15
заслуженный участник
Сейчас нет на сайте
Quote (Clairdelune)
Или хотя бы полный код того, что там делается (в 2-й главе книги)?

В книге приводится полный код, WndProc там описывается после объяснения кода из WinMain. Да и к книге прилагался диск.


Многие вопросы по Windows отпадут, если посмотреть тут
warzesДата: Воскресенье, 15 Июля 2012, 10:37 | Сообщение # 16
участник
Сейчас нет на сайте
Quote (goldsphere)
Вроде мелкомягкие его низкоуровневый код переписывали почти с нуля.

там все с нуля. В основе DX лежит прослойка DXGI (вроде бы - я тоже не спец cool ) Именно она и работает с видеокартой (отсюда кстати не совместимость со старыми виндами - там нет этого слоя). Сам же DX11 - это абстрактный уровень, именно отсюда и получилась такая фича - что если видеокарта не поддерживает новый DX, то при определенных параметрах - проект все равно будет работать как надо на хардваре (хоть и немного урезанным функционалом). эта фича зовется featurelevel (кста, в OGL такого нет - в результате приложение на OGL4 не запустить на видеокарте держащей только OGL3).
Кроме того - очень многое было просто выкинуто (тот самый IDirect3DVertexBuffer9 - в DX9 для каждого буфера был свой интерфейс, в DX11 для всех буферов один общий интерфейс).
Также - DX9 был все таки сосредоточен на фиксированном рендере. Тогда как DX11 - на программируемом (то есть на шейдерах). А это и есть самое главное отличие - я много видел всяких движков в которых люди переносили свой опыт DX9 на DX11 - знаете, не очень красиво и коряво получается. Или вот другой пример - Ogre, именно из-за разной философии, для Ogre до сих пор не могут сделать поддержку DX11, хотя начали ее делать еще в 2007 году (DX10)... Только потому что слишком привязаны к фиксированному функционалу и вся ихняя архитектура не совместима с DX11... именно поэтому лично я не советую изучать DX9 чтобы потом изучать DX11


Мой блог
Вики DirectX
ClairdeluneДата: Воскресенье, 15 Июля 2012, 10:41 | Сообщение # 17
был не раз
Сейчас нет на сайте
А если изучить DX10, то насколько сложным будет переход на DX11?

Добавлено (15.07.2012, 10:41)
---------------------------------------------

Quote (Нохчи)
Да и к книге прилагался диск.

Где скачать можно?
НохчиДата: Воскресенье, 15 Июля 2012, 11:07 | Сообщение # 18
заслуженный участник
Сейчас нет на сайте
Прямая ссылка

Многие вопросы по Windows отпадут, если посмотреть тут
ClairdeluneДата: Воскресенье, 15 Июля 2012, 13:17 | Сообщение # 19
был не раз
Сейчас нет на сайте
А если изучить DX10, то насколько сложным будет переход на DX11?
ArchidoДата: Воскресенье, 15 Июля 2012, 13:55 | Сообщение # 20
Сэнсэй
Сейчас нет на сайте
Quote (warzes)
Не согласен. Раньше, во времена Dx9 - да, там хорошо все было описано. А сейчас откроешь описание какой-нибудь структуры, а там невразумительная строчка по которой совершенно ничего не понятно:

Это как раз подтверждает, что нужно сначала DX9 (даже OGL) осилить, ибо тогда все понятно по одной строчке wink . Да и семплы в комплекте есть, умея разбираться в чужом коде, можно легко подчерпнуть нужное от туда. При должных знаниях и опыте переход DX9 -> DX11 делается за неделю, и не надо тут ничего выдумывать, что это сложно или что-то там непонятно. Все прекрасно там понятно.

Когда впервые работаешь с GAPI, то ясное дело учишься по книжкам где тебе все расжевывают и в рот кладут, а ты в основном делаешь копипаст и радуешься. Позже уже с опытом и помощью книжек ты начинаешь понимать как это оно вообще работает и потихой разбираешься. После этого другой GAPI подается изучению в разе проще.
Что OpenGL, что DX9, что DX11 - все одно, только интерфейсы разные. Смысл один: "вершины, текстуры, буферы, шейдеры. создать буфер, забиндить буфер, забиндить текстуру, нарисовать". Инструмент отличается да, каждый на свой манер, но зная как ВООБЩЕ пользоваться любым инструментом - переучиться на другой большого труда не составит.

Я сам в свое время изучал OpenGL по книжкам, писал на нем много, а после для DX9 и DX11 хватило документации и семплов. Проверено на себе.

Quote (warzes)
Также - DX9 был все таки сосредоточен на фиксированном рендере. Тогда как DX11 - на программируемом (то есть на шейдерах). А это и есть самое главное отличие - я много видел всяких движков в которых люди переносили свой опыт DX9 на DX11 - знаете, не очень красиво и коряво получается. Или вот другой пример - Ogre, именно из-за разной философии, для Ogre до сих пор не могут сделать поддержку DX11, хотя начали ее делать еще в 2007 году (DX10)... Только потому что слишком привязаны к фиксированному функционалу и вся ихняя архитектура не совместима с DX11...

Ты мешаешь все в одну кучу, одно дело разбираться и уметь пользоваться определенным GAPI (DX9 и DX11) и другое дело, когда у тебя есть здоровенная махина - движок, архитектура которого изначально заточена под определенный GAPI. Во втором случае есть проблемы, но вообще это заранее говорит о не самой лучшей архитектуре. А в первом перевести демку с одного на другой - дело нескольких дней. Небольшую игрушку - неделю, полторы. Мы же не говорим о портировании ААА тайтла, правда? wink

+ DX11 железо и\или Win7 не у всех есть, да и вообще может человек будет потом Indie игры делать, тогда DX11 сразу же отправится в баню.

Quote (warzes)
Потом будет на форумах спрашивать "куда делся IDirect3DVertexBuffer9 (это так, для примера)..." Dx9 и Dx11 - это разные GAPI, с совершенно разной философией.

Если не хватет ума заглянуть в документацию и посмотреть, куда и чего там делось, а по ходу еще и в семплы - узнать как люди делают и что изменилось, то лучше сразу юзать GameMaker.
Хм, насчет философии. В 11-ом убрали ффп, добавили плюшек, немного изменили интерфейсы, и вот она новая философия, да happy

Quote (warzes)
именно поэтому лично я не советую изучать DX9 чтобы потом изучать DX11

Ога, пусть мучается, пишет шейдеры и биндит TargetView'ры, чтобы квадрат нарисовать. Копипастом и вообще ни капли не понимая, что происходит. Зато в ногу со временем, чо. И без "DX9 стайла" tongue

Да и еще, выдуманный "DX9 стайл" на самом деле только в пользу. И еще неплохо знать OGL в комплекте. Таким образом представляя общую картину, можно написать отличную прослойку между несколькими GAPI и подсистемами движками верхнего уровня под общий манер, т.н. MultiRender. Это будет правильная архитектура. Но, это не для новичков, конечно cool

Quote (Clairdelune)
А если изучить DX10, то насколько сложным будет переход на DX11?

Это почти одно и тоже.

P.S. Я бы вообще первым OGL учил wink


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)

Сообщение отредактировал Archido - Воскресенье, 15 Июля 2012, 13:59
Форум игроделов » Ресурсы и Примеры игр » 3D-моделирование и 3D-графика » DirectX 11 SDK (Извините, если запостил не туда)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг