DirectX12 学習リソース

Project ASURA – DirectX12予習
http://project-asura.com/blog/archives/1215

Direct3D 12 Programming Guide
https://docs.microsoft.com/en-us/windows/desktop/direct3d12/directx-12-programming-guide

Microsoft DirectX 12 and Graphics Education
https://www.youtube.com/channel/UCiaX2B8XiXR70jaN7NK-FpA/feed

Practical DirectX 12
https://developer.nvidia.com/sites/default/files/akamai/gameworks/blog/GDC16/GDC16_gthomas_adunn_Practical_DX12.pdf

BSSRDF 学習リソース

BSSRDF Explorer: A rendering framework for the BSSRDF
https://benedikt-bitterli.me/bachelor-thesis.pdf

A Practical Model for Subsurface Light Transport
https://graphics.stanford.edu/papers/bssrdf/bssrdf.pdf

超雑訳 Extending the Disney BRDF to a BSDF with Integrated Subsurface Scattering
http://project-asura.com/blog/archives/2175

半透明物体に対する表面下散乱モデルの当てはめ
http://omilab.naist.jp/~mukaigawa/papers/CVIM2008-BSSRDF.pdf

Full-Dimensional Sampling and Analysis of BSSRDF
http://omilab.naist.jp/~mukaigawa/papers/TCVA2013-BSSRDF.pdf

BSSRDF 設計のための表面下散乱シミュレーション
https://ir.lib.hiroshima-u.ac.jp/files/public/2/20408/20141016135155334350/p302_0903-6.pdf

Maxwell – Grass
http://support.nextlimit.com/display/maxwell4/Grass

凄い貴重な資料です。ちゃんと読みたい。

Visual Studio 2015 で Direct3D11 Sample ビルド時の LNK2019

dxerr.lib(dxerrw.obj) : error LNK2019: unresolved external symbol _vsnwprintf referenced in function “long __cdecl StringVPrintfWorkerW(unsigned short *,unsigned __int64,unsigned __int64 *,unsigned short const *,char *)” (?StringVPrintfWorkerW@@YAJPEAG_KPEA_KPEBGPEAD@Z)

Visual Studio 2015 以降で、DirectX Sample ビルド時に上記の LNK2019 エラーが発生した場合は、プロジェクトのリンカーの設定に「legacy_stdio_definitions.lib」を追加する必要があります。

https://social.msdn.microsoft.com/Forums/en-US/5150eeec-4427-440f-ab19-aecb26113d31/updated-to-vs-2015-and-now-get-unresolved-external-errors?forum=vcgeneral

このリンクエラーは Visual Studio 2015 から printf 系の関数の実装が inline 展開されるようになったのが原因で発生しているみたいです。関数が inline 展開されるため、呼び出し側はコンパイル時に命令列に置き換わることになるので、関数の呼び出し先そのものが存在しなくなります。(今回であれば printf 関数のアドレスが無くなります)

プロジェクトのソースコードに書かれている printf は、コンパイル時に命令列に展開されるので問題は起こらないのですが、既にコンパイル済の (古いソースコードの) lib は printf の関数のアドレスが未だにどこかに定義されていると信じてリンク時に探しに行くのですが、該当の関数は inline 展開されているため見つけることができずにエラーになります。

legacy_stdio_definitions.lib をリンクすることで、この lib の中に古い (legacyな)  printf の実態を持つバイナリが含まれているため、これにリンクできるのでビルドが通るようになります。

もしリンクエラーを起こしている lib のソースコードが手元にある場合は、Visual Studio 2015 で一度 lib を作り直した方が良いのですが、無い場合は上記の legacy lib をリンクしてしまうのが一番早い解決のようです。

https://msdn.microsoft.com/en-us/library/bb531344.aspx

Real-Time Rendering

Real-Time Rendering はゲームグラフィックスを学ぶ中で、目に通した方が良いサイトです。

Graphics Books Page
http://www.realtimerendering.com/books.html

Portal
http://www.realtimerendering.com/portal.html

Resources
http://www.realtimerendering.com/index.html

Real-time Rendering 4th edition

2018年8月2日 にリアルタイムレンダリング4版が出版されます。
http://www.realtimerendering.com/blog/real-time-rendering-4th-edition-available-in-august-2018/

Third edition の発売は2008年のようだったので、10年ぶりの改訂版ですね。
自分は second edition の日本語版しか持っていないので、新しいのが出たら買いたいです。