ページ数 |
内容 |
書籍修正刷 |
電子書籍訂正 |
発生刷 |
登録日 |
041
Note「Hull Shader ステージでは分割は行われない」1行目 |
誤 |
実際に分割が行われないと |
正 |
実際に分割が行われないこと |
備
考 |
※リフローEPUB場合Chapter2の「2.1.2.グラフィックスパイプラインの各ステージ」内に該当箇所があります。 |
|
4刷 |
済 |
1刷 |
2024.02.14 |
048
上から2番目のコードの3行目および4行目 |
誤 |
_31 _32 _33 _14
_41 _42 _43 _14 |
正 |
_31 _32 _33 _34
_41 _42 _43 _44 |
備
考 |
※リフローEPUBの場合、「2.2.3 HLSLの基本構文」の3つ目の小見出し「●行列」の4つ目のグレーの枠内が該当箇所になります。 |
|
2刷 |
済 |
1刷 |
2020.03.18 |
061
「main.cppの中身は、ひとまず次の内容をそのまま書いてください。」の下のコード 2行目 |
誤 |
|
正 |
#include <Windows.h> の下に
#include <tchar.h> を追加 |
備
考 |
※リフローEPUB場合Chapter3の「3.1最初のプロジェクト」内に該当箇所があります。 |
|
4刷 |
済 |
1刷 |
2024.02.20 |
066
1つ目のコード3行目 |
誤 |
IDXGISwapchain4* _swapchain = nullptr; |
正 |
IDXGISwapChain4* _swapchain = nullptr; |
備
考 |
「chain4*」の「c」を大文字に変更します。
※リフローEPUBの場合、図3.3の後にある小見出し「●基本オブジェクトの生成」の最初のサンプルコードが該当箇所になります。 |
|
3刷 |
済 |
1刷 |
2020.05.29 |
078
本文下から2行目 |
誤 |
第3引数、第4引数はnullptrでよいため、第2引数のDXGI_SWAP_CHAIN_DESC1について |
正 |
第4引数、第5引数はnullptrでよいため、第3引数のDXGI_SWAP_CHAIN_DESC1について |
備
考 |
※リフローEPUBの場合、「3.3.4 スワップチェーン」の3つ目のNote「DeviceなのになぜCommandQueue?」のすぐ下の段落が該当箇所になります。 |
|
2刷 |
済 |
1刷 |
2020.03.03 |
079
「●スワップチェーンの生成」3つ目のコード 下から1~7行目 |
誤 |
result = _dxgiFactory->CreateSwapChainForHwnd(
_cmdQueue,
hwnd,
&swapchainDesc,
nullptr,
nullptr,
(IDXGISwapChain1**)&_swapchain); |
正 |
result = _dxgiFactory->CreateSwapChainForHwnd(
_cmdQueue, hwnd,
&swapchainDesc, nullptr, nullptr,
(IDXGISwapChain1**)&_swapchain); // 本来はQueryInterface などを用いて
// IDXGISwapChain4* への変換チェックをするが、
// ここではわかりやすさ重視のためキャストで対応 |
備
考 |
※リフローEPUBの場合、見出し「3.3.5 レンダーターゲットビュー(RTV)」の前にあるサンプルコードが該当箇所になります。 |
|
3刷 |
済 |
1刷 |
2022.02.21 |
083
3つ目のコード、1行目 |
誤 |
std::vector<ID3D12Resouce*> _backBuffers(swcDesc.BufferCount); |
正 |
std::vector<ID3D12Resource*> _backBuffers(swcDesc.BufferCount); |
備
考 |
※リフローEPUBの場合、「3.3.5 レンダーターゲットビュー(RTV)」の5つ目の小見出し「●スワップチェーンのメモリとひも付ける」の2つ目のグレー枠内が該当箇所になります。 |
|
2刷 |
済 |
1刷 |
2020.03.18 |
121
見出し「エラーが起きた場合」の上に掲載しているコード 下から1行目 |
誤 |
&_vsBlob, &errorBlob); // エラー時はerrorBlob にメッセージが入る |
正 |
&_psBlob, &errorBlob); // エラー時はerrorBlob にメッセージが入る |
備
考 |
※リフローEPUBの場合、「4.6.3 D3DCompileFromFile()関数」の1つ目の小見出し「●エラーが起きた場合」の上にあるグレー枠内が該当箇所になります。 |
|
3刷 |
済 |
1刷 |
2021.04.23 |
122
1つ目のコード 1~3行目 |
誤 |
std::copy_n(errstr.data(),
errorBlob->GetBufferPointer(),
errorBlob->GetBufferSize()); |
正 |
std::copy_n((cher*)errorBlob->GetBufferPointer(),
errorBlob->GetBufferSize(),
errstr.begin()); |
備
考 |
※リフローEPUBの場合、「4.6.3 D3DCompileFromFile()関数」の1つ目の小見出し「●エラーが起きた場合」の1つ目のグレー枠内、「//データコピー」の下にある3行が該当箇所になります。 |
|
3刷 |
済 |
1刷 |
2021.05.14 |
136
2つ目、3つ目の箇条書き |
誤 |
・BlendOp:D3D12_BLEND_OP_ADD(加算)
・SrcBlend:D3D12_BLEND_ONE(描画元そのままの値)
・DestBlend:D3D12_BLEND_ONE(描画元そのままの値)
同様に、乗算合成は次のようになります。
・BlendOp:D3D12_BLEND_OP_ADD(加算)
・SrcBlend:D3D12_BLEND_ZERO(使用しない)
・DestBlend:D3D12_BLEND_SRC_COLOR(描画元そのままの値) |
正 |
・BlendOp:D3D12_BLEND_OP_ADD(加算)
・SrcBlend:D3D12_BLEND_ONE(描画元の色)
・DestBlend:D3D12_BLEND_ONE(描画先の色)
同様に、乗算合成は次のようになります。
・BlendOp:D3D12_BLEND_OP_ADD(加算)
・SrcBlend:D3D12_BLEND_ZERO(使用しない)
・DestBlend:D3D12_BLEND_SRC_COLOR(描画先の色×描画元の色) |
備
考 |
※リフローEPUBの場合、「4.8.5 ブレンドステートの設定」の2つ目の小見出し「●ブレンドの係数」にある2つ目と3つ目の箇条書きが該当箇所になります。 |
|
3刷 |
済 |
1刷 |
2020.05.29 |
137
「4.8.6 入力レイアウトの設定」の「●InputLayout」2行目 |
誤 |
(InputLayout:D3D12_INPUT_LAYOUT_DESC型)を設定していきましょう。 |
正 |
(InputLayout:D3D12_INPUT_ELEMENT_DESC型)を設定していきましょう。 |
|
3刷 |
済 |
1刷 |
2021.04.23 |
141
「D3D12_ROOT_SIGNATURE_DESCの設定」2つ目のソースコード 3行目 |
誤 |
D3D12ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT; |
正 |
D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT; |
|
4刷 |
済 |
1刷 |
2022.09.22 |
145
1つ目のコード直後 |
誤 |
(内容の追加となります) |
正 |
それから、次のようにビューポートとシザー矩形を設定します。
====
_cmdList->RSSetViewports(1, &viewport);
_cmdList->RSSetScissorRects(1, &scissorrect);
==== |
備
考 |
※リフローEPUBの場合、「4.10.3 描画命令」の2つ目のグレー枠のすぐ下が挿入箇所になります。 |
|
2刷 |
済 |
1刷 |
2020.02.25 |
146
2つ目のコード |
誤 |
return float4((float2(0, 1) + input.pos.xy) * 0.5f,1, 1) |
正 |
return float4((float2(0, 1) + pos.xy) * 0.5f, 1, 1) |
備
考 |
※リフローEPUBの場合、「4.10.3 描画命令」の1つ目の小見出し「●いろいろ試してみよう」の2つ目のグレー枠が該当箇所になります。 |
|
2刷 |
済 |
1刷 |
2020.03.18 |
159
コード最終行 |
誤 |
std::vector texturedata(256*256); |
正 |
std::vector<TexRGBA> texturedata(256*256); |
備
考 |
※リフローEPUBの場合、「5.4テクスチャデータの作成」の1つ目のグレー枠内が該当箇所になります。 |
|
2刷 |
済 |
1刷 |
2020.03.02 |
164
「5.7.2 シェーダーリソースビューを作る」ソースコード 3行目 |
誤 |
// テクスチャのフォーマット(今回はDXGI_FORMAT_R8G8B8A8_UINT) |
正 |
// テクスチャのフォーマット(今回はDXGI_FORMAT_R8G8B8A8_UNORM) |
|
4刷 |
済 |
1刷 |
2022.09.22 |
170
「5.9.1 ルートシグネチャの指定」に掲載のコード |
誤 |
_cmdList->SetGraphicsRootSignature(rootSignatureDesc); |
正 |
_cmdList->SetGraphicsRootSignature(rootSignature); |
|
3刷 |
済 |
1刷 |
2021.04.23 |
174
本文下から7行目 |
誤 |
$(DXTEX_DIR)Desktop_2019_Win10\x64\Debug |
正 |
$(DXTEX_DIR)\Bin\Desktop_2019_Win10\x64\Debug |
備
考 |
※リフローEPUBの場合、「5.11.1 DirectXTexの準備」の最後から2つ目の段落が該当箇所になります。 |
|
2刷 |
済 |
1刷 |
2020.03.06 |
177
本文1行目 |
誤 |
第1引数以外はミップレベルです。 |
正 |
第1引数はミップレベルです。 |
備
考 |
※リフローEPUBの場合、「5.11.2 画像ファイルのロード」の3つ目のNote「インターフェイス関連のエラーが出る場合」の下にあるグレー枠の下の段落が該当箇所になります。 |
|
2刷 |
済 |
1刷 |
2020.02.18 |
192
「d3dx12.hを使うと、これを以下のように書き直すことができます。」の下のコードについて |
誤 |
|
正 |
VisualStudio2019の更新が行われた際に、
一時オブジェクトのアドレスを渡すことがエラー扱いとなりました。
このため、
auto heapProp = CD3DX12_HEAP_PROPERTIES(...);
auto heapDesc=CD3DX12_RESOURCE_DESC::Buffer(...);
のように一時変数を入れて
result=_dev->CreateCommittedResource(
&heapProp,
D3D12_HEAP_FLAG_NONE,
&heapDesc,
(以下省略)
とするとコンパイルエラーがなくなります。 |
備
考 |
※リフローEPUBの場合、「5.13.2 d3dx12.hの利用例」の2つ目のグレー枠についての補足となります。 |
|
4刷 |
済 |
1刷 |
2021.04.21 |
198
「6.1.2 XMMATRIX構造体」直前の本文 |
誤 |
特にDirectXでは、C++でXMMATRIX構造体(後述)を扱っているときには列優先となり、HLSLで乗算する際には行優先となります。注意しましょう。 |
正 |
特にDirectXでは、C++でXMMATRIX構造体(後述)を扱っているときには行優先となり、HLSLで乗算する際には列優先となります。注意しましょう。 |
|
3刷 |
済 |
1刷 |
2020.05.29 |
199
1つ目のNote |
誤 |
「HLSLは行優先」
先述のようにシェーダー(HLSL)では行優先のため順序が逆です。 |
正 |
「HLSLは列優先」
先述のようにシェーダー(HLSL)では列優先のため順序が逆です。 |
備
考 |
※リフローEPUBの場合、「6.1.2 XMMATRIX構造体」の2つ目のNoteが該当箇所になります。 |
|
3刷 |
済 |
1刷 |
2020.05.29 |
201
本文下から2行目末 |
誤 |
ひとまず案マップの必要はないので |
正 |
ひとまずアンマップの必要はないので |
備
考 |
※リフローEPUBの場合、「6.2.2 マップによる定数のコピー」の冒頭が該当箇所になります。 |
|
2刷 |
済 |
1刷 |
2020.02.20 |
208
本文3行目(2つ目のコード直後) |
誤 |
ここまででルートシグネチャの |
正 |
ルートパラメータが配列になったので、rootSignatureDesc.pParametersの指定も配列化に合わせて書き換えてください。ここまででルートシグネチャの |
備
考 |
※リフローEPUBの場合、「6.2.5 頂点シェーダーからの定数バッファー(行列)の参照」の直前にある段落が該当箇所になります。 |
|
2刷 |
済 |
1刷 |
2020.03.18 |
208
4つ目のコード 1~2行目 |
誤 |
// 定数バッファー
cbuffer cbuff0 : register(b0)
|
正 |
cbuffer cbuff0 : register(b0) // 定数バッファー |
備
考 |
※リフローEPUBの場合、「6.2.5 頂点シェーダーからの定数バッファー(行列)の参照」の2つ目のグレー枠が該当箇所になります。 |
|
2刷 |
済 |
1刷 |
2021.12.16 |
222
「6.4.6 コーディング」ソースコード1行目 |
誤 |
MATRIX matrix = XMMatrixRotationY(XM_PIDIV4); |
正 |
XMMATRIX matrix = XMMatrixRotationY(XM_PIDIV4); |
|
4刷 |
済 |
1刷 |
2022.09.22 |
228
2段落目先頭行 |
誤 |
先頭3バイトがシグネチャとして"pmd"という文字列になっているのです。 |
正 |
先頭3バイトがシグネチャとして"Pmd"という文字列になっているのです。 |
備
考 |
※リフローEPUBの場合、「7.4 PMDヘッダー構造体」の1つ目のグレー枠の下の段落が該当箇所になります。 |
|
2刷 |
済 |
1刷 |
2020.02.18 |
263
Note内2行目 |
誤 |
ID3D11DeviceContext |
正 |
ID3D12GraphicsCommandList |
備
考 |
※リフローEPUBの場合、「8.3.1 マテリアル用バッファーの作成」のNote「無駄な領域を作らない方法」が該当箇所になります。 |
|
2刷 |
済 |
1刷 |
2020.02.25 |
264
「ディスクリプタヒープの作成」に掲載しているコード |
誤 |
ID3D12DescriptorHeap* materialDescHeap = nullptr;
D3D12_DESCRIPTOR_HEAP_DESC matDescHeapDesc = {};
matDescHeapDesc.Flags =
D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE;
matDescHeapDesc.NodeMask = 0;
matDescHeapDesc.NumDescriptors = materialNum; // マテリアル数を指定
matDescHeapDesc.Type = D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV;
result = _dev->CreateDescriptorHeap(
&matDescHeapDesc, IID_PPV_ARGS(&materialDescHeap)); |
正 |
ID3D12DescriptorHeap* materialDescHeap = nullptr;
D3D12_DESCRIPTOR_HEAP_DESC materialDescHeapDesc={};
materialDescHeapDesc.Flags=
D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE;
materialDescHeapDesc.NodeMask=0;
materialDescHeapDesc.NumDescriptors=materialNum;
materialDescHeapDesc.Type=D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV;
result=_dev->CreateDescriptorHeap(
&materialDescHeapDesc,IID_PPV_ARGS(&materialDescHeap)); |
備
考 |
コード内の「matDescHeapDesc」を「materialDescHeapDesc 」に修正します。 |
|
4刷 |
済 |
1刷 |
2023.01.25 |
271
「パス合成関数」ソースコード 下から3行目 |
誤 |
auto folderPath = modelPath.substr(0,modelPath.rfind('/')); |
正 |
auto folderPath = modelPath.substr(0,modelPath.rfind('/')+1); |
|
4刷 |
済 |
1刷 |
2023.01.25 |
272
「Note /か\か」ソースコード下から3行目 |
誤 |
auto folderPath = modelPath.substr(0, pathIndex); |
正 |
auto folderPath = modelPath.substr(0, pathIndex+1); |
|
4刷 |
済 |
1刷 |
2023.01.25 |
277
2つ目のソースコード 1行目 |
誤 |
for (int i = 0; i < pmdMaterials.size(); ++i) |
正 |
vector textureResources(materialNum);
for (int i = 0; i < pmdMaterials.size(); ++i) |
|
4刷 |
済 |
1刷 |
2023.01.25 |
279
1つ目のソースコード 1行目 |
誤 |
auto inc = _dev->GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV); |
正 |
auto incSize = _dev->GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV); |
|
4刷 |
済 |
1刷 |
2023.01.25 |
295
最終行 |
誤 |
ここまでできたら、読み込みモデルを初音ミク.metal.pmdに変更し、実行してみましょう。 |
正 |
ここまでできたら、読み込みモデルを"初音ミクmetal.pmd"に変更し、実行してみましょう。 |
|
4刷 |
済 |
1刷 |
2023.01.25 |
299
2つ目のソースコード |
誤 |
float2 sphereMapUV = input.vnormal.xy; |
正 |
float2 sphereMapUV = input.vnormal.xy;
sphereMapUV = (sphereMapUV+float2(1,-1))*float2(0.5,-0.5); |
|
4刷 |
済 |
1刷 |
2023.01.25 |
300
コード5行目および6行目 |
誤 |
normalUV
(※2箇所) |
正 |
いずれも
sphereMapUV
となります。 |
備
考 |
※リフローEPUBの場合、「8.7.1 アンビエントの実装」の図8.18の次にあるグレー枠内が該当箇所になります。 |
|
2刷 |
済 |
1刷 |
2020.03.02 |
301
1つ目のNote内のコード4行目および5行目 |
誤 |
normalUV
(※2箇所) |
正 |
いずれも
sphereMapUV
となります。 |
備
考 |
※リフローEPUBの場合、「8.7.1 アンビエントの実装」の末尾にあるNote「うまくいかない場合」が該当箇所になります。 |
|
2刷 |
済 |
1刷 |
2021.12.16 |
301
1つ目および2つ目のコード、構造体内メンバー |
誤 |
XMMATRIX viewProj; |
正 |
XMMATRIX view; XMMATRIX proj; |
備
考 |
※リフローEPUBの場合、「8.7.2 スペキュラの実装」の1つ目と2つ目のグレー枠が該当箇所になります。 |
|
2刷 |
済 |
1刷 |
2020.03.02 |
302
2つ目のソースコード |
誤 |
output.ray = normalize(pos.xyz - eye); |
正 |
pos = mul(world,pos);
output.ray = normalize(pos.xyz - eye); |
|
4刷 |
済 |
1刷 |
2023.01.25 |
302
1つ目のコード、構造体内メンバー |
誤 |
matrix viewproj; |
正 |
matrix view; matrix proj; |
備
考 |
※リフローEPUBの場合、「8.7.2 スペキュラの実装」の1つ目のNote「便利な機能」の下にあるグレー枠が該当箇所になります。 |
|
2刷 |
済 |
1刷 |
2020.03.02 |
303
最終行 |
誤 |
ただ、このままだと真っ黒なので、以下のようディフューズ・スペキュラ・アンビエントを |
正 |
ただ、このままだと真っ黒なので、以下のようにディフューズ ・スペキュラ・アンビエントを |
|
4刷 |
済 |
1刷 |
2023.01.25 |
304
1つ目のコード、2行目 |
誤 |
diffuse * diffuse |
正 |
diffuseB * diffuse |
備
考 |
※リフローEPUBの場合、図8.20の下にあるグレー枠が該当箇所になります。 |
|
2刷 |
済 |
1刷 |
2020.03.02 |
311
1つ目のソースコード 下から3行目 |
誤 |
return *it; |
正 |
return it->second; |
|
4刷 |
済 |
1刷 |
2023.01.25 |
313
ソースコード 1行目 |
誤 |
for(int i = 0; i < pmdMaterials.size(); **i) |
正 |
vector toonResources(materialNum);
for(int i = 0; i < pmdMaterials.size(); **i) |
|
4刷 |
済 |
1刷 |
2023.01.25 |
314
1つ目のコード中のfor文 |
誤 |
for (; it != data.end(); it += 4)
{
auto col = (c << 0xff) | (c << 16) | (c << 8) | c;
std::fill(it, it+4, col);
--c;
} |
正 |
for (; it != data.end(); it += 4)
{ //RGBAが逆並びのためRGBマクロと0xff<<24を用いて表す
auto col = (0xff << 24) | RGB(c,c,c);
std::fill(it, it+4, col);
--c;
} |
備
考 |
※リフローEPUBの場合、「8.9.5 デフォルトグラデーションテクスチャの作成」の1つ目のグレー枠が該当箇所になります。 |
|
3刷 |
済 |
1刷 |
2020.09.25 |
327
1つ目のソースコード 6行目 |
誤 |
// 定数[b0](マテリアル用) |
正 |
// 定数[b1](マテリアル用) |
|
4刷 |
済 |
1刷 |
2023.01.25 |
329
3つ目のコード |
誤 |
D3D12CreateDevice(tmpAdapter, l, IID_PPV_ARGS(&_dev)); |
正 |
D3D12CreateDevice(tmpAdapter, lv, IID_PPV_ARGS(&_dev)); |
備
考 |
※リフローEPUBの場合、「9.1.5 ComPtrテンプレートクラスを使ったリファクタリング」の3つ目のグレー枠が該当箇所になります。 |
|
2刷 |
済 |
1刷 |
2020.03.18 |
368
・表情(ブレンドシェイプ)のデータ:23 バイト |
誤 |
・表情(ブレンドシェイプ)のデータ数:4バイト整数型(符号なし)
・表情(ブレンドシェイプ)のデータ:23 バイト |
正 |
・表情(ブレンドシェイプ)のデータ数:4バイト整数型(符号なし)
・表情(ブレンドシェイプ)のデータ:23 バイト |
|
4刷 |
済 |
1刷 |
2023.01.25 |
374
下から6行目 |
誤 |
以降は各キーフレームにおけるモーションのデータ(もデータ)が入っています。 |
正 |
以降は各キーフレームにおけるモーションのデータが入っています。 |
|
4刷 |
済 |
1刷 |
2023.01.25 |
382
本文4~5行目 |
誤 |
現在のフレーム名をもとに |
正 |
現在のフレーム番号をもとに |
備
考 |
※リフローEPUBの場合、「10.10.1 フレームごとにポーズを取らせる」の4つ目のグレー枠の下にある3つ目の段落が該当箇所になります。 |
|
3刷 |
済 |
1刷 |
2020.05.29 |
448
コード7行目 |
誤 |
auto targetNode = _boneNodeAddressArray[ik.boneIdx]; |
正 |
auto targetNode = _boneNodeAddressArray[ik.targetIdx]; |
備
考 |
※リフローEPUBの場合、「11.5.8 IKボーンにルートと末端しかない場合」のグレー枠が該当箇所になります。 |
|
2刷 |
済 |
1刷 |
2020.03.18 |
449
本文 上から4行目 |
誤 |
テータの構造上、 |
正 |
データの構造上、 |
備
考 |
※リフローEPUBの場合、図11.30の下、2つ目のグレー枠の下にある段落が該当箇所になります。 |
|
3刷 |
済 |
1刷 |
2020.05.25 |
464
図12.1 左側のオブジェクト |
誤 |
シェーダーリソースビュー(SRV) |
正 |
レンダーターゲットビュー(RTV) |
|
3刷 |
済 |
1刷 |
2020.05.29 |
484
図12.13 右上、右下、左下(全3箇所) |
|
3刷 |
済 |
1刷 |
2020.05.29 |
494
上から3つ目に掲載しているコードの下から5行目 |
誤 |
D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV); |
正 |
D3D12_DESCRIPTOR_HEAP_TYPE_RTV); |
備
考 |
※リフローEPUBの場合、図12.18の下、3つ目のグレー枠内が該当箇所になります。 |
|
3刷 |
済 |
1刷 |
2021.04.23 |
507
数式(2) |
誤 |
a(x − x0) + b(y − y0) + c(z − z0) + d = 0 |
正 |
a(x − x0) + b(y − y0) + c(z − z0) = 0 |
備
考 |
※リフローEPUBの場合、「13.2.1 モデルを地面につぶす」の数式(2)が該当箇所になります。 |
|
3刷 |
済 |
1刷 |
2020.05.29 |
589
4つ目のコード末尾 |
誤 |
[ImGui::] |
正 |
上記を削除します。 |
備
考 |
※リフローEPUBの場合、「16.2.2 imguiの初期化」の7つ目のグレー枠内が該当箇所になります。 |
|
3刷 |
済 |
1刷 |
2020.05.29 |
621
本文6行目と「Note Releaseビルドの場合」内(2箇所) |
誤 |
Bin\Desktop_2017_Win10\x64 |
正 |
Bin\Desktop_2019_Win10\x64 |
備
考 |
※リフローEPUBの場合、「18.2 DirectXTK12の入手」の囲み「Releaseビルドの場合」および、その上の段落が該当箇所になります。 |
|
3刷 |
済 |
1刷 |
2020.05.29 |
★電子書籍(リフローEPUB)のみの正誤★
「5.3 シェーダーにuv 情報を追加する」の最初のサンプルコードの下にある箇条書き |
誤 |
・2ビット
・loatを表現する要素が2つ分 |
正 |
・32ビット
・floatを表現する要素が2つ分 |
備
考 |
リフローEPUB形式の電子書籍の制作上のミスによる誤りです。紙書籍・PDF版電子書籍は正しい内容となっています。 |
|
1刷 |
済 |
1刷 |
2025.07.10 |
読者特典-84
Appendix 1(数学編)84ページ 1行目 |
誤 |
|
正 |
|
|
未 |
未 |
1刷 |
2021.05.13 |