Я пытался, довольно безуспешно, сделать Deferred Renderer, использующий DirectX 11, примерно месяц.
Большинство технических документов, с которыми я сталкивался, описывают всеобъемлющую реализацию, но не фактическую реализацию (которая имеет смысл, но отстой для фактической реализации — для меня в любом случае).
Я взглянул на несколько полномасштабных реализаций движка, таких как исходный код из «Практического рендеринга» & Вычисление Direct3D 11 «, https://hieroglyph3.codeplex.com/, но нашли их чрезвычайно перегруженными и / или невероятно сложными (включая вычислительные шейдеры).
Хотя я посмотрел через http://rastertek.com/ учебники, они не обновлялись в течение некоторого времени (насколько мне известно, автор находится в постоянном перерыве) и используют темы из DirectX 9/10.
За последние пару недель я пытался найти набор сравнительно базовых руководств по реализации, чтобы, надеюсь, получить поддержку — под сравнительно базовым, я имею в виду диффузный & нормали для прохода геометрии и точечные источники света для прохода освещения.
Итак, чтобы задать вопрос, есть ли знания, набор учебников и / или пример проекта, реализующего основную реализацию, которую я описал выше?
Я не слишком заинтересован в XNA или OpenGL, учитывая, что первый — это c #, а второй — не DirectX или учебники по RasterTek, потому что, как я уже сказал, они устарели.
Большое спасибо, я ценю это.
Я бы сильно Предлагаю купить эту книгу: «Практический рендеринг» & Вычисления Direct3D 11 «. Есть целая глава, посвященная отложенному рендерингу, в которой подробно объясняется, как это работает, минусы & плюсы, и как решить типичные проблемы с отложенным рендером.
Вот некоторые ресурсы, надеюсь, что некоторые из них работают на вас.
Образцы AMD Radeon SDK: http://developer.amd.com/tools-and-sdks/graphics-development/amd-radeon-sdk/#downloadsamples — образец Tiled Lighting откладывается. Может быть немного сложнее, хотя.
Образцы NVIDIA Gameworks: https://developer.nvidia.com/gameworks-directx-samples
Лучший ресурс, который я знаю, из OpenGL: http://ogldev.atspace.co.uk/www/tutorial35/tutorial35.html — Я знаю, что вы хотели DirectX 11, но это может стоить посмотреть, если вы хотите лучше понять принципы.
Помимо этого, я бы предложил вам просто начать реализацию. Вы упомянули, что уже знаете, как визуализировать текстуры. Начиная с кода, который у вас уже есть, переход к отложенному рендерингу не должен быть слишком сложным даже без прямых примеров кода. Поначалу вам не нужно беспокоиться об освещении — просто визуализируйте цвета текстуры в своем g-буфере и настройте полноэкранный квад для прохода отложенного затенения и выведите цвета на экран. Как только у вас есть это, вы уже на пути к полностью отложенному рендереру.