回答編集履歴

1

aspectとverticalFov、horizontalFovの関係について追記

2019/05/25 22:00

投稿

Bongo
Bongo

スコア10807

test CHANGED
@@ -171,3 +171,51 @@
171
171
  #endif
172
172
 
173
173
  ```
174
+
175
+
176
+
177
+ **追記**
178
+
179
+
180
+
181
+ まず`aspect`は画面高さに対する画面幅、`fieldOfView`および上記コードの`verticalFov`は垂直画角、上記コードの`horizontalFov`は水平画角です。
182
+
183
+
184
+
185
+ ![図1](618756b81557db084e3ca0752b5c2097.png)
186
+
187
+
188
+
189
+ ![式1](d11bdc76bca9c7a83dceeb77a93980ce.png)
190
+
191
+
192
+
193
+ 画面上半分・右半分に注目すると、直角三角形が2つあります。
194
+
195
+
196
+
197
+ ![図2](7497ba3f6c1cb79c144f9d54a23d43c7.png)
198
+
199
+
200
+
201
+ ![式2](0cfc03f8341e57d37730630dbedd88f4.png)
202
+
203
+
204
+
205
+ 図中の角度と辺の比には下記の関係がありますので...
206
+
207
+
208
+
209
+ ![式3](9083fe0657a5de8021f861c3b687f6f2.png)
210
+
211
+
212
+
213
+ `aspect`と`verticalFov`、`horizontalFov`の関係はこうなります。
214
+
215
+
216
+
217
+ ![式4](7c48b8b472d8547e58f1e7bd63c65b16.png)
218
+
219
+
220
+
221
+ なお、度数法と弧度法の変換は省略しました。実際には画角を三角関数に渡すときには弧度法に変換し、逆三角関数から受け取った角度は度数法に変換する必要があります。