回答編集履歴

2

未解決に戻ったので文言を変更

2021/10/28 11:35

投稿

fana
fana

スコア11996

test CHANGED
@@ -206,7 +206,7 @@
206
206
 
207
207
 
208
208
 
209
- [解決後の編集:コメント欄の内容のうち,質問内容への回答的な要素がある部分を以下に移植しておく]
209
+ [編集:コメント欄の内容のうち,質問内容への回答的な要素がある部分を以下に移植しておく]
210
210
 
211
211
 
212
212
 

1

コメント欄の内容を回答へ移植

2021/10/28 11:35

投稿

fana
fana

スコア11996

test CHANGED
@@ -195,3 +195,89 @@
195
195
  }
196
196
 
197
197
  ```
198
+
199
+
200
+
201
+ ---
202
+
203
+
204
+
205
+ ---
206
+
207
+
208
+
209
+ [解決後の編集:コメント欄の内容のうち,質問内容への回答的な要素がある部分を以下に移植しておく]
210
+
211
+
212
+
213
+ ### 質問文記載の法線計算方法の話について
214
+
215
+
216
+
217
+ > 1と2どちらがただしいでしょうか。
218
+
219
+
220
+
221
+ とのことですが…
222
+
223
+
224
+
225
+ > 1.追記ベクトルA=(2,-1,3)のベクトルAを正規化しなさい
226
+
227
+
228
+
229
+ これは,単なる ベクトルの単位化 の話ですね.
230
+
231
+ L2ノルムで全要素を除すことで単位ベクトルが得られる,という普通の話です.
232
+
233
+
234
+
235
+ > 2.ポリゴンの3頂点をv1=(1,0,0),v2=(0,1,0),v3=(0,0,1)として法線を正規化しなさい
236
+
237
+
238
+
239
+ こっちは,三角形の法線方向ベクトルを外積で求めて,
240
+
241
+ その後でそれを前記1の話で単位化する,という話.
242
+
243
+
244
+
245
+ …なので,1と2の関係性というのは「2の計算は1の話を用いている」であり,「どちらが正しいか」という関係性ではないですよね.
246
+
247
+
248
+
249
+ 1, 2 の話自体はごくごく普通の内容と見えます.
250
+
251
+
252
+
253
+ ### glScale の影響の話
254
+
255
+
256
+
257
+ glSacle のスケーリングが,glNormal3f で設定している値にまで効果を及ぼしてしまう,ということなんだと思います.
258
+
259
+ 例えば,
260
+
261
+
262
+
263
+ ```
264
+
265
+ glScalef( 2, 2, 2 );
266
+
267
+ ...
268
+
269
+ glNormal3f( /*単位法線ベクトルのx,y,z*/ );
270
+
271
+ ```
272
+
273
+
274
+
275
+ という形で書くと,結果として法線が長さ2になってしまうんでしょうね.
276
+
277
+ (で,変な単位ベクトルでない変な値で計算されてしまって,結果の色がおかしくなる,と.)
278
+
279
+
280
+
281
+ `GL_NOMALIZE` とかいうのはこの嫌らしい効果に対抗するための手段…ということなのかな.
282
+
283
+ (ライティング処理の前に法線を正規化してくれる機能っぽい)