質問編集履歴
77
書式の改善
title
CHANGED
File without changes
|
body
CHANGED
@@ -51,10 +51,7 @@
|
|
51
51
|
dot(n, normalize(-wLightDir))
|
52
52
|
|
53
53
|
dotの結果は、向きが近ければ近いほど1.0に近づき、向きが反対に近いほど-1.0に近づきます。
|
54
|
-
正規化されたベクトル同士の内積は必ず-1.0 ~ 1.0の間に収束されます。
|
55
54
|
1.0に近いと明るく、0.0に近いと暗くなります。
|
56
|
-
|
57
|
-
求めた内積はclampを施し、0.0 ~ 1.0にクリップします。
|
58
55
|
マイナス部分は光の量を逆に奪ってしまうので、マイナスにならない様にします。
|
59
56
|
|
60
57
|
だそうです。
|
76
書式の改善
title
CHANGED
File without changes
|
body
CHANGED
@@ -46,13 +46,10 @@
|
|
46
46
|
うまくコードにできませんでした。
|
47
47
|
|
48
48
|
追記.... 正規化した法線の値が-1.0~1.0の値になっていました。正規化した値は0.0~1.0かもしれないので追記します。
|
49
|
+
https://qiita.com/yoship1639/items/75505244b6c242d50f71
|
49
50
|
|
51
|
+
dot(n, normalize(-wLightDir))
|
50
52
|
|
51
|
-
|
52
|
-
https://qiita.com/yoship1639/items/75505244b6c242d50f71
|
53
|
-
|
54
|
-
dot(n, normalize(-wLightDir))は、法線と正規化させたディレクショナルライトの向きの内積を取る処理です。
|
55
|
-
wLightDirがマイナスなのは法線と逆向きの状態を直すためです。
|
56
53
|
dotの結果は、向きが近ければ近いほど1.0に近づき、向きが反対に近いほど-1.0に近づきます。
|
57
54
|
正規化されたベクトル同士の内積は必ず-1.0 ~ 1.0の間に収束されます。
|
58
55
|
1.0に近いと明るく、0.0に近いと暗くなります。
|
75
まとめ
title
CHANGED
File without changes
|
body
CHANGED
@@ -41,7 +41,7 @@
|
|
41
41
|
|
42
42
|
|
43
43
|
|
44
|
-
間違えてたらすいません。責任とりません。
|
44
|
+
間違えてたらすいません。責任とりません。誤差のようなものがあるようなのと、
|
45
45
|
あと、こちらも責任取りませんが、正規化した法線、V_X/la,V_Y/la,V_Z/laが
|
46
46
|
うまくコードにできませんでした。
|
47
47
|
|
74
まとめ
title
CHANGED
File without changes
|
body
CHANGED
@@ -42,7 +42,7 @@
|
|
42
42
|
|
43
43
|
|
44
44
|
間違えてたらすいません。責任とりません。
|
45
|
-
あと、こちらも責任取りませんが、
|
45
|
+
あと、こちらも責任取りませんが、正規化した法線、V_X/la,V_Y/la,V_Z/laが
|
46
46
|
うまくコードにできませんでした。
|
47
47
|
|
48
48
|
追記.... 正規化した法線の値が-1.0~1.0の値になっていました。正規化した値は0.0~1.0かもしれないので追記します。
|
73
まとめ
title
CHANGED
File without changes
|
body
CHANGED
@@ -43,34 +43,8 @@
|
|
43
43
|
|
44
44
|
間違えてたらすいません。責任とりません。
|
45
45
|
あと、こちらも責任取りませんが、結果がファイルの法線と同じ値となると思いましたが、なりませんでした。正規化した法線、V_X/la,V_Y/la,V_Z/laの計算途中に間違いがあるかもしれません。どこかに誤りがあるかもしれません。
|
46
|
+
うまくコードにできませんでした。
|
46
47
|
|
47
|
-
(私の計算で、vnの数値をみたところ、だいたい小数点第三位までしか正しくなくて4桁目からずれているかんじになった。)
|
48
|
-
間違えてるみたいなのでソースコードは削除します。(また自前の計算途中に誤りがある場合使わないでください。)
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
さらに間違いなのかわからないですけど、
|
53
|
-
間違えてたらすいません。責任とりません。
|
54
|
-
|
55
|
-
glNormal3f(x,y,z); glVertex3f(x,y,z);glNormal3f().....と、
|
56
|
-
すべてのglNormal3f(x,y,z)がglVertex3f(x,y,z);
|
57
|
-
になってしまい上のようになるので、xyzは同じ値。
|
58
|
-
|
59
|
-
モデルがfの頂点(21217//x,21216//x,20400//x)etc頂点の外積でしたのでほしいのは頂点の値でした。
|
60
|
-
頭から直に読みこんでいけば、glNormal3f(x,y,z);glVertex();glNormal3f(x,y,z);glVertex3f();glNormal3f(x,y,z);glVertex3f()で、xyzは違う値で
|
61
|
-
|
62
|
-
いけるかもしれないけど、誤差が大きく間違えてる可能性があるので、それ以上合っているかはやめておく。誤差以前に値が違くてうまくいかなかったです。
|
63
|
-
|
64
|
-
●の方法を推奨
|
65
|
-
|
66
|
-
●頂点から正規化された法線を求めるのがうまくいかなかったので、 glNormal3fにあらかじめ用意してた法線の配列を与えました。こちらも使うにあたって自己責任でおねがいします。
|
67
|
-
|
68
|
-
[参考サイト](https://docs.microsoft.com/ja-jp/windows/win32/opengl/glnormal3f)
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
glRotatef(angle,x,y,z);で数式はカバーされる。
|
73
|
-
|
74
48
|
追記.... 正規化した法線の値が-1.0~1.0の値になっていました。正規化した値は0.0~1.0かもしれないので追記します。
|
75
49
|
|
76
50
|
|
72
まとめ
title
CHANGED
File without changes
|
body
CHANGED
@@ -59,7 +59,8 @@
|
|
59
59
|
モデルがfの頂点(21217//x,21216//x,20400//x)etc頂点の外積でしたのでほしいのは頂点の値でした。
|
60
60
|
頭から直に読みこんでいけば、glNormal3f(x,y,z);glVertex();glNormal3f(x,y,z);glVertex3f();glNormal3f(x,y,z);glVertex3f()で、xyzは違う値で
|
61
61
|
|
62
|
-
いけるかもしれないけど、誤差が大きく間違えてる可能性があるので、それ以上合っているかはやめておく
|
62
|
+
いけるかもしれないけど、誤差が大きく間違えてる可能性があるので、それ以上合っているかはやめておく。誤差以前に値が違くてうまくいかなかったです。
|
63
|
+
|
63
64
|
●の方法を推奨
|
64
65
|
|
65
66
|
●頂点から正規化された法線を求めるのがうまくいかなかったので、 glNormal3fにあらかじめ用意してた法線の配列を与えました。こちらも使うにあたって自己責任でおねがいします。
|
71
まとめ
title
CHANGED
File without changes
|
body
CHANGED
@@ -50,6 +50,7 @@
|
|
50
50
|
|
51
51
|
|
52
52
|
さらに間違いなのかわからないですけど、
|
53
|
+
間違えてたらすいません。責任とりません。
|
53
54
|
|
54
55
|
glNormal3f(x,y,z); glVertex3f(x,y,z);glNormal3f().....と、
|
55
56
|
すべてのglNormal3f(x,y,z)がglVertex3f(x,y,z);
|
70
まとめ
title
CHANGED
File without changes
|
body
CHANGED
@@ -56,7 +56,7 @@
|
|
56
56
|
になってしまい上のようになるので、xyzは同じ値。
|
57
57
|
|
58
58
|
モデルがfの頂点(21217//x,21216//x,20400//x)etc頂点の外積でしたのでほしいのは頂点の値でした。
|
59
|
-
頭から直に読みこんでいけば、glNormal3f(x,y,z);glVertex();glNormal3f(x,y,z);glVertex3f();glNormal3f(x,y,z);glVertex3f()で、xyzは違う値
|
59
|
+
頭から直に読みこんでいけば、glNormal3f(x,y,z);glVertex();glNormal3f(x,y,z);glVertex3f();glNormal3f(x,y,z);glVertex3f()で、xyzは違う値で
|
60
60
|
|
61
61
|
いけるかもしれないけど、誤差が大きく間違えてる可能性があるので、それ以上合っているかはやめておく
|
62
62
|
●の方法を推奨
|
69
まとめ
title
CHANGED
File without changes
|
body
CHANGED
@@ -50,16 +50,15 @@
|
|
50
50
|
|
51
51
|
|
52
52
|
さらに間違いなのかわからないですけど、
|
53
|
-
glBegin();glNormal3f(x,y,z);glVertex3f(x,y,z);glVertex3f(x,y,z);glVertex3f(x,y,z)
|
54
|
-
glEnd();の語順になってしまう。自己責任でお願いします。
|
55
53
|
|
56
54
|
glNormal3f(x,y,z); glVertex3f(x,y,z);glNormal3f().....と、
|
57
|
-
すべてのglNormal3f(x,y,z)がglVertex3f(x,y,z);
|
55
|
+
すべてのglNormal3f(x,y,z)がglVertex3f(x,y,z);
|
56
|
+
になってしまい上のようになるので、xyzは同じ値。
|
57
|
+
|
58
58
|
モデルがfの頂点(21217//x,21216//x,20400//x)etc頂点の外積でしたのでほしいのは頂点の値でした。
|
59
59
|
頭から直に読みこんでいけば、glNormal3f(x,y,z);glVertex();glNormal3f(x,y,z);glVertex3f();glNormal3f(x,y,z);glVertex3f()で、xyzは違う値。
|
60
60
|
|
61
|
-
いけるかもしれないけど、誤差が大きそうなので
|
62
|
-
|
61
|
+
いけるかもしれないけど、誤差が大きく間違えてる可能性があるので、それ以上合っているかはやめておく
|
63
62
|
●の方法を推奨
|
64
63
|
|
65
64
|
●頂点から正規化された法線を求めるのがうまくいかなかったので、 glNormal3fにあらかじめ用意してた法線の配列を与えました。こちらも使うにあたって自己責任でおねがいします。
|
68
まとめ
title
CHANGED
File without changes
|
body
CHANGED
@@ -56,10 +56,11 @@
|
|
56
56
|
glNormal3f(x,y,z); glVertex3f(x,y,z);glNormal3f().....と、
|
57
57
|
すべてのglNormal3f(x,y,z)がglVertex3f(x,y,z);上のようになってしまうので
|
58
58
|
モデルがfの頂点(21217//x,21216//x,20400//x)etc頂点の外積でしたのでほしいのは頂点の値でした。
|
59
|
-
|
59
|
+
頭から直に読みこんでいけば、glNormal3f(x,y,z);glVertex();glNormal3f(x,y,z);glVertex3f();glNormal3f(x,y,z);glVertex3f()で、xyzは違う値。
|
60
60
|
|
61
61
|
いけるかもしれないけど、誤差が大きそうなので
|
62
|
+
。間違えてる可能性があるので、それ以上合っているかはやめておく
|
62
|
-
●の方法を推奨
|
63
|
+
●の方法を推奨
|
63
64
|
|
64
65
|
●頂点から正規化された法線を求めるのがうまくいかなかったので、 glNormal3fにあらかじめ用意してた法線の配列を与えました。こちらも使うにあたって自己責任でおねがいします。
|
65
66
|
|
67
まとめ
title
CHANGED
File without changes
|
body
CHANGED
@@ -56,7 +56,9 @@
|
|
56
56
|
glNormal3f(x,y,z); glVertex3f(x,y,z);glNormal3f().....と、
|
57
57
|
すべてのglNormal3f(x,y,z)がglVertex3f(x,y,z);上のようになってしまうので
|
58
58
|
モデルがfの頂点(21217//x,21216//x,20400//x)etc頂点の外積でしたのでほしいのは頂点の値でした。
|
59
|
-
間違えてる可能性があるので、それ以上合っているかはやめておく、
|
59
|
+
間違えてる可能性があるので、それ以上合っているかはやめておく、頭から直に読みこんでいけば、glNormal3f(x,y,z);glVertex();glNormal3f(x,y,z);glVertex3f();glNormal3f(x,y,z);glVertex3f()で、xyzは違う値。
|
60
|
+
|
61
|
+
いけるかもしれないけど、誤差が大きそうなので
|
60
62
|
●の方法を推奨。
|
61
63
|
|
62
64
|
●頂点から正規化された法線を求めるのがうまくいかなかったので、 glNormal3fにあらかじめ用意してた法線の配列を与えました。こちらも使うにあたって自己責任でおねがいします。
|
66
まとめ
title
CHANGED
File without changes
|
body
CHANGED
@@ -56,7 +56,7 @@
|
|
56
56
|
glNormal3f(x,y,z); glVertex3f(x,y,z);glNormal3f().....と、
|
57
57
|
すべてのglNormal3f(x,y,z)がglVertex3f(x,y,z);上のようになってしまうので
|
58
58
|
モデルがfの頂点(21217//x,21216//x,20400//x)etc頂点の外積でしたのでほしいのは頂点の値でした。
|
59
|
-
間違えてる可能性があるので、それ以上合っているかはやめておく
|
59
|
+
間違えてる可能性があるので、それ以上合っているかはやめておく、というか普通に考えて●の方法が正しいと思う。なにを間違ったかやりかたがあるか知らないからいいきれないけど、
|
60
60
|
●の方法を推奨。
|
61
61
|
|
62
62
|
●頂点から正規化された法線を求めるのがうまくいかなかったので、 glNormal3fにあらかじめ用意してた法線の配列を与えました。こちらも使うにあたって自己責任でおねがいします。
|
65
まとめ
title
CHANGED
File without changes
|
body
CHANGED
@@ -55,8 +55,8 @@
|
|
55
55
|
|
56
56
|
glNormal3f(x,y,z); glVertex3f(x,y,z);glNormal3f().....と、
|
57
57
|
すべてのglNormal3f(x,y,z)がglVertex3f(x,y,z);上のようになってしまうので
|
58
|
-
|
59
|
-
|
58
|
+
モデルがfの頂点(21217//x,21216//x,20400//x)etc頂点の外積でしたのでほしいのは頂点の値でした。
|
59
|
+
間違えてる可能性があるので、それ以上合っているかはやめておく
|
60
60
|
●の方法を推奨。
|
61
61
|
|
62
62
|
●頂点から正規化された法線を求めるのがうまくいかなかったので、 glNormal3fにあらかじめ用意してた法線の配列を与えました。こちらも使うにあたって自己責任でおねがいします。
|
64
まとめ
title
CHANGED
File without changes
|
body
CHANGED
@@ -54,9 +54,9 @@
|
|
54
54
|
glEnd();の語順になってしまう。自己責任でお願いします。
|
55
55
|
|
56
56
|
glNormal3f(x,y,z); glVertex3f(x,y,z);glNormal3f().....と、
|
57
|
-
すべてのglNormal3f(x,y,z)がglVertex3f(x,y,z);に
|
57
|
+
すべてのglNormal3f(x,y,z)がglVertex3f(x,y,z);上のようになってしまうので
|
58
58
|
|
59
|
-
|
59
|
+
法線が1のとき、モデルがfの法線(x//1,x//1,x//1)と1で、すべて一致したのであってたのかもしれないため
|
60
60
|
●の方法を推奨。
|
61
61
|
|
62
62
|
●頂点から正規化された法線を求めるのがうまくいかなかったので、 glNormal3fにあらかじめ用意してた法線の配列を与えました。こちらも使うにあたって自己責任でおねがいします。
|
63
まとめ
title
CHANGED
File without changes
|
body
CHANGED
@@ -53,7 +53,12 @@
|
|
53
53
|
glBegin();glNormal3f(x,y,z);glVertex3f(x,y,z);glVertex3f(x,y,z);glVertex3f(x,y,z)
|
54
54
|
glEnd();の語順になってしまう。自己責任でお願いします。
|
55
55
|
|
56
|
+
glNormal3f(x,y,z); glVertex3f(x,y,z);glNormal3f().....と、
|
57
|
+
すべてのglNormal3f(x,y,z)がglVertex3f(x,y,z);にかかってしまうので
|
56
58
|
|
59
|
+
法線が1のとき、モデルがfの法線(x//1,x//1,x//1)と1で、すべて一致したのであってたのかもしれないため
|
60
|
+
●の方法を推奨。
|
61
|
+
|
57
62
|
●頂点から正規化された法線を求めるのがうまくいかなかったので、 glNormal3fにあらかじめ用意してた法線の配列を与えました。こちらも使うにあたって自己責任でおねがいします。
|
58
63
|
|
59
64
|
[参考サイト](https://docs.microsoft.com/ja-jp/windows/win32/opengl/glnormal3f)
|
62
まとめ
title
CHANGED
File without changes
|
body
CHANGED
@@ -57,11 +57,9 @@
|
|
57
57
|
●頂点から正規化された法線を求めるのがうまくいかなかったので、 glNormal3fにあらかじめ用意してた法線の配列を与えました。こちらも使うにあたって自己責任でおねがいします。
|
58
58
|
|
59
59
|
[参考サイト](https://docs.microsoft.com/ja-jp/windows/win32/opengl/glnormal3f)
|
60
|
-
計算でだした正規化された法線の値 V_X/la,V_Y/la,V_Z/と
|
61
|
-
ファイルの値、vn -0.9103 -0.1287 -0.3935は大体同じ値だったのですが、
|
62
|
-
同じ値と考えて、vn -0.9103 -0.1287 -0.3935はすでに正規化されていると考えていいのかわかりません。
|
63
60
|
|
64
61
|
|
62
|
+
|
65
63
|
glRotatef(angle,x,y,z);で数式はカバーされる。
|
66
64
|
|
67
65
|
追記.... 正規化した法線の値が-1.0~1.0の値になっていました。正規化した値は0.0~1.0かもしれないので追記します。
|
61
まとめ
title
CHANGED
File without changes
|
body
CHANGED
@@ -57,9 +57,11 @@
|
|
57
57
|
●頂点から正規化された法線を求めるのがうまくいかなかったので、 glNormal3fにあらかじめ用意してた法線の配列を与えました。こちらも使うにあたって自己責任でおねがいします。
|
58
58
|
|
59
59
|
[参考サイト](https://docs.microsoft.com/ja-jp/windows/win32/opengl/glnormal3f)
|
60
|
+
計算でだした正規化された法線の値 V_X/la,V_Y/la,V_Z/と
|
61
|
+
ファイルの値、vn -0.9103 -0.1287 -0.3935は大体同じ値だったのですが、
|
62
|
+
同じ値と考えて、vn -0.9103 -0.1287 -0.3935はすでに正規化されていると考えていいのかわかりません。
|
60
63
|
|
61
64
|
|
62
|
-
|
63
65
|
glRotatef(angle,x,y,z);で数式はカバーされる。
|
64
66
|
|
65
67
|
追記.... 正規化した法線の値が-1.0~1.0の値になっていました。正規化した値は0.0~1.0かもしれないので追記します。
|
60
まとめ
title
CHANGED
File without changes
|
body
CHANGED
@@ -56,11 +56,10 @@
|
|
56
56
|
|
57
57
|
●頂点から正規化された法線を求めるのがうまくいかなかったので、 glNormal3fにあらかじめ用意してた法線の配列を与えました。こちらも使うにあたって自己責任でおねがいします。
|
58
58
|
|
59
|
-
[参考サイト](https://docs.microsoft.com/ja-jp/windows/win32/opengl/
|
59
|
+
[参考サイト](https://docs.microsoft.com/ja-jp/windows/win32/opengl/glnormal3f)
|
60
60
|
|
61
61
|
|
62
62
|
|
63
|
-
|
64
63
|
glRotatef(angle,x,y,z);で数式はカバーされる。
|
65
64
|
|
66
65
|
追記.... 正規化した法線の値が-1.0~1.0の値になっていました。正規化した値は0.0~1.0かもしれないので追記します。
|
59
まとめ
title
CHANGED
File without changes
|
body
CHANGED
@@ -56,13 +56,11 @@
|
|
56
56
|
|
57
57
|
●頂点から正規化された法線を求めるのがうまくいかなかったので、 glNormal3fにあらかじめ用意してた法線の配列を与えました。こちらも使うにあたって自己責任でおねがいします。
|
58
58
|
|
59
|
-
https://docs.microsoft.com/ja-jp/windows/win32/opengl/glnormal3b
|
59
|
+
[参考サイト](https://docs.microsoft.com/ja-jp/windows/win32/opengl/glnormal3b)
|
60
60
|
|
61
|
-
--参考サイト
|
62
61
|
|
63
62
|
|
64
63
|
|
65
|
-
|
66
64
|
glRotatef(angle,x,y,z);で数式はカバーされる。
|
67
65
|
|
68
66
|
追記.... 正規化した法線の値が-1.0~1.0の値になっていました。正規化した値は0.0~1.0かもしれないので追記します。
|
58
まとめ
title
CHANGED
File without changes
|
body
CHANGED
@@ -56,11 +56,13 @@
|
|
56
56
|
|
57
57
|
●頂点から正規化された法線を求めるのがうまくいかなかったので、 glNormal3fにあらかじめ用意してた法線の配列を与えました。こちらも使うにあたって自己責任でおねがいします。
|
58
58
|
|
59
|
-
https://docs.microsoft.com/ja-jp/windows/win32/opengl/glnormal3b
|
59
|
+
https://docs.microsoft.com/ja-jp/windows/win32/opengl/glnormal3b
|
60
60
|
|
61
|
+
--参考サイト
|
61
62
|
|
62
63
|
|
63
64
|
|
65
|
+
|
64
66
|
glRotatef(angle,x,y,z);で数式はカバーされる。
|
65
67
|
|
66
68
|
追記.... 正規化した法線の値が-1.0~1.0の値になっていました。正規化した値は0.0~1.0かもしれないので追記します。
|
57
まとめ
title
CHANGED
File without changes
|
body
CHANGED
@@ -56,11 +56,11 @@
|
|
56
56
|
|
57
57
|
●頂点から正規化された法線を求めるのがうまくいかなかったので、 glNormal3fにあらかじめ用意してた法線の配列を与えました。こちらも使うにあたって自己責任でおねがいします。
|
58
58
|
|
59
|
+
https://docs.microsoft.com/ja-jp/windows/win32/opengl/glnormal3b --引用サイト
|
59
60
|
|
60
61
|
|
61
62
|
|
62
63
|
|
63
|
-
|
64
64
|
glRotatef(angle,x,y,z);で数式はカバーされる。
|
65
65
|
|
66
66
|
追記.... 正規化した法線の値が-1.0~1.0の値になっていました。正規化した値は0.0~1.0かもしれないので追記します。
|
56
まとめ
title
CHANGED
File without changes
|
body
CHANGED
@@ -54,7 +54,7 @@
|
|
54
54
|
glEnd();の語順になってしまう。自己責任でお願いします。
|
55
55
|
|
56
56
|
|
57
|
-
●頂点から正規化された法線を求めるのがうまくいかなかったので、 glNormal3fにあらかじめ用意してた法線の配列を与えました。
|
57
|
+
●頂点から正規化された法線を求めるのがうまくいかなかったので、 glNormal3fにあらかじめ用意してた法線の配列を与えました。こちらも使うにあたって自己責任でおねがいします。
|
58
58
|
|
59
59
|
|
60
60
|
|
55
まとめ
title
CHANGED
File without changes
|
body
CHANGED
@@ -54,11 +54,13 @@
|
|
54
54
|
glEnd();の語順になってしまう。自己責任でお願いします。
|
55
55
|
|
56
56
|
|
57
|
+
●頂点から正規化された法線を求めるのがうまくいかなかったので、 glNormal3fにあらかじめ用意してた法線の配列を与えました。
|
57
58
|
|
58
59
|
|
59
60
|
|
60
61
|
|
61
62
|
|
63
|
+
|
62
64
|
glRotatef(angle,x,y,z);で数式はカバーされる。
|
63
65
|
|
64
66
|
追記.... 正規化した法線の値が-1.0~1.0の値になっていました。正規化した値は0.0~1.0かもしれないので追記します。
|
54
まとめ
title
CHANGED
File without changes
|
body
CHANGED
@@ -49,7 +49,7 @@
|
|
49
49
|
|
50
50
|
|
51
51
|
|
52
|
-
間違いなのかわからないですけど、
|
52
|
+
さらに間違いなのかわからないですけど、
|
53
53
|
glBegin();glNormal3f(x,y,z);glVertex3f(x,y,z);glVertex3f(x,y,z);glVertex3f(x,y,z)
|
54
54
|
glEnd();の語順になってしまう。自己責任でお願いします。
|
55
55
|
|
53
まとめ
title
CHANGED
File without changes
|
body
CHANGED
@@ -45,7 +45,7 @@
|
|
45
45
|
あと、こちらも責任取りませんが、結果がファイルの法線と同じ値となると思いましたが、なりませんでした。正規化した法線、V_X/la,V_Y/la,V_Z/laの計算途中に間違いがあるかもしれません。どこかに誤りがあるかもしれません。
|
46
46
|
|
47
47
|
(私の計算で、vnの数値をみたところ、だいたい小数点第三位までしか正しくなくて4桁目からずれているかんじになった。)
|
48
|
-
間違えてるみたいなのでソースコードは削除します。(誤りがある場合使わないでください。)
|
48
|
+
間違えてるみたいなのでソースコードは削除します。(また自前の計算途中に誤りがある場合使わないでください。)
|
49
49
|
|
50
50
|
|
51
51
|
|
52
まとめ
title
CHANGED
File without changes
|
body
CHANGED
@@ -42,11 +42,13 @@
|
|
42
42
|
|
43
43
|
|
44
44
|
間違えてたらすいません。責任とりません。
|
45
|
-
あと、
|
45
|
+
あと、こちらも責任取りませんが、結果がファイルの法線と同じ値となると思いましたが、なりませんでした。正規化した法線、V_X/la,V_Y/la,V_Z/laの計算途中に間違いがあるかもしれません。どこかに誤りがあるかもしれません。
|
46
|
-
どこかに誤りがあると思います。(vnの数値をみたところ、だいたい小数点第三位までしか正しくなくて4桁目がずれているかんじ。)
|
47
|
-
間違えてるみたいなのでソースコードは削除します。
|
48
46
|
|
47
|
+
(私の計算で、vnの数値をみたところ、だいたい小数点第三位までしか正しくなくて4桁目からずれているかんじになった。)
|
48
|
+
間違えてるみたいなのでソースコードは削除します。(誤りがある場合使わないでください。)
|
49
49
|
|
50
|
+
|
51
|
+
|
50
52
|
間違いなのかわからないですけど、
|
51
53
|
glBegin();glNormal3f(x,y,z);glVertex3f(x,y,z);glVertex3f(x,y,z);glVertex3f(x,y,z)
|
52
54
|
glEnd();の語順になってしまう。自己責任でお願いします。
|
51
まとめ
title
CHANGED
File without changes
|
body
CHANGED
@@ -43,7 +43,7 @@
|
|
43
43
|
|
44
44
|
間違えてたらすいません。責任とりません。
|
45
45
|
あと、計算結果がファイルの法線と同じ値となると思いましたが、なりませんでした。
|
46
|
-
どこかに誤りがあると思います。(vnの
|
46
|
+
どこかに誤りがあると思います。(vnの数値をみたところ、だいたい小数点第三位までしか正しくなくて4桁目がずれているかんじ。)
|
47
47
|
間違えてるみたいなのでソースコードは削除します。
|
48
48
|
|
49
49
|
|
50
まとめ
title
CHANGED
File without changes
|
body
CHANGED
@@ -43,7 +43,7 @@
|
|
43
43
|
|
44
44
|
間違えてたらすいません。責任とりません。
|
45
45
|
あと、計算結果がファイルの法線と同じ値となると思いましたが、なりませんでした。
|
46
|
-
どこかに誤りがあると思います。
|
46
|
+
どこかに誤りがあると思います。(vnのはじまりの数値をみたところ、誤差がでてるのかも)
|
47
47
|
間違えてるみたいなのでソースコードは削除します。
|
48
48
|
|
49
49
|
|
49
まとめ
title
CHANGED
File without changes
|
body
CHANGED
@@ -35,23 +35,28 @@
|
|
35
35
|
法線は正規化する必要があるのでn=A/ √A^2+B^2+C^2 , B/√A^2+B^2+C^2,
|
36
36
|
C/√A^2+B^2+C^2,
|
37
37
|
|
38
|
+
参考文献。。3Dグラフィックスのための数学 工学社
|
38
39
|
|
39
|
-
1と2どちらがただしいでしょうか
|
40
|
+
1と2どちらがただしいでしょうか
|
40
41
|
|
42
|
+
|
43
|
+
|
41
44
|
間違えてたらすいません。責任とりません。
|
45
|
+
あと、計算結果がファイルの法線と同じ値となると思いましたが、なりませんでした。
|
46
|
+
どこかに誤りがあると思います。
|
42
|
-
間違えてた
|
47
|
+
間違えてるみたいなのでソースコードは削除します。
|
43
|
-
追記....ソースコードの再計算中に、x座標とz座標の計算をまちがえたかもしれないが、ベクトルの計算を満たしても左回りの計算を満たさないケースを否定できないかもしれないので、ソースコードを削除します。
|
44
48
|
|
49
|
+
|
45
50
|
間違いなのかわからないですけど、
|
46
51
|
glBegin();glNormal3f(x,y,z);glVertex3f(x,y,z);glVertex3f(x,y,z);glVertex3f(x,y,z)
|
47
52
|
glEnd();の語順になってしまう。自己責任でお願いします。
|
48
53
|
|
49
|
-
参考文献。。3Dグラフィックスのための数学 工学社
|
50
54
|
|
51
55
|
|
52
56
|
|
53
57
|
|
54
58
|
|
59
|
+
|
55
60
|
glRotatef(angle,x,y,z);で数式はカバーされる。
|
56
61
|
|
57
62
|
追記.... 正規化した法線の値が-1.0~1.0の値になっていました。正規化した値は0.0~1.0かもしれないので追記します。
|
48
文章のまとめ
title
CHANGED
File without changes
|
body
CHANGED
@@ -52,7 +52,7 @@
|
|
52
52
|
|
53
53
|
|
54
54
|
|
55
|
-
glRotatef(angle,x,y,z);で数式はカバーされ
|
55
|
+
glRotatef(angle,x,y,z);で数式はカバーされる。
|
56
56
|
|
57
57
|
追記.... 正規化した法線の値が-1.0~1.0の値になっていました。正規化した値は0.0~1.0かもしれないので追記します。
|
58
58
|
|
47
まとめ
title
CHANGED
File without changes
|
body
CHANGED
@@ -52,7 +52,7 @@
|
|
52
52
|
|
53
53
|
|
54
54
|
|
55
|
-
glRotatef(angle,x,y,z);で
|
55
|
+
glRotatef(angle,x,y,z);で数式はカバーされている。
|
56
56
|
|
57
57
|
追記.... 正規化した法線の値が-1.0~1.0の値になっていました。正規化した値は0.0~1.0かもしれないので追記します。
|
58
58
|
|
46
まとめ
title
CHANGED
File without changes
|
body
CHANGED
@@ -48,9 +48,12 @@
|
|
48
48
|
|
49
49
|
参考文献。。3Dグラフィックスのための数学 工学社
|
50
50
|
|
51
|
-
~~参考文献には、前法線と、移動後の後法線の概念があり~~glRotatef(angle,1,0,0);等でカバーできているか、それとも、数式でカバーするのか、わからない問題が新たに出てしまいました。
|
52
51
|
|
53
52
|
|
53
|
+
|
54
|
+
|
55
|
+
glRotatef(angle,x,y,z);で法線の数式はカバーされている。
|
56
|
+
|
54
57
|
追記.... 正規化した法線の値が-1.0~1.0の値になっていました。正規化した値は0.0~1.0かもしれないので追記します。
|
55
58
|
|
56
59
|
|
45
文章の直し
title
CHANGED
File without changes
|
body
CHANGED
@@ -48,7 +48,7 @@
|
|
48
48
|
|
49
49
|
参考文献。。3Dグラフィックスのための数学 工学社
|
50
50
|
|
51
|
-
参考文献には、前法線と、移動後の後法線の概念があり
|
51
|
+
~~参考文献には、前法線と、移動後の後法線の概念があり~~glRotatef(angle,1,0,0);等でカバーできているか、それとも、数式でカバーするのか、わからない問題が新たに出てしまいました。
|
52
52
|
|
53
53
|
|
54
54
|
追記.... 正規化した法線の値が-1.0~1.0の値になっていました。正規化した値は0.0~1.0かもしれないので追記します。
|
44
文章の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -41,12 +41,11 @@
|
|
41
41
|
間違えてたらすいません。責任とりません。
|
42
42
|
間違えてたら嫌なので削除します。
|
43
43
|
追記....ソースコードの再計算中に、x座標とz座標の計算をまちがえたかもしれないが、ベクトルの計算を満たしても左回りの計算を満たさないケースを否定できないかもしれないので、ソースコードを削除します。
|
44
|
-
|
45
44
|
|
45
|
+
間違いなのかわからないですけど、
|
46
|
+
glBegin();glNormal3f(x,y,z);glVertex3f(x,y,z);glVertex3f(x,y,z);glVertex3f(x,y,z)
|
47
|
+
glEnd();の語順になってしまう。自己責任でお願いします。
|
46
48
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
49
|
参考文献。。3Dグラフィックスのための数学 工学社
|
51
50
|
|
52
51
|
参考文献には、前法線と、移動後の後法線の概念がありました。glRotatef(angle,1,0,0);等でカバーできているか、それとも、数式でカバーするのか、わからない問題が新たに出てしまいました。
|
43
文章の追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,73 +1,70 @@
|
|
1
|
-
1.追記ベクトルA=(2,-1,3)のベクトルAを正規化しなさい
|
2
|
-
|
3
|
-
A^2=2^2+(-1)^2+3^2=4+1+9=14
|
4
|
-
|
5
|
-
正規化したベクトルは(2/√14,-1/√14,3/√14)になります.
|
6
|
-
|
7
|
-
2.ポリゴンの3頂点をv1=(1,0,0),v2=(0,1,0),v3=(0,0,1)として法線を正規化しなさい
|
8
|
-
|
9
|
-
ベクトルv1v3=v3-v1=(0-1,0-0,1-0)=(-1,0,1),
|
10
|
-
ベクトルv1v2=v2-v1=(0-1,1-0,0-0)=(-1,1,0)
|
11
|
-
法線は直交するので、ベクトルv1v3 x ベクトルv1v2=
|
12
|
-
|i,j,k|
|
13
|
-
|-1,0,1|
|
14
|
-
|-1,1,0|=(-1,-1,-1)
|
15
|
-
法線は正規化して(-1/√3,-1/√3,-1/√3)
|
16
|
-
|
17
|
-
|
18
|
-
3.必要な計算
|
19
|
-
|
20
|
-
|
21
|
-
→AB=→b- →a
|
22
|
-
|
23
|
-
|
24
|
-
2つのベクトル(x1,y1,z1)(x2,y2,z2)の時,
|
25
|
-
|
26
|
-
v1*v2=|i,j,k|
|
27
|
-
|x1,y1,z1|
|
28
|
-
|x2,y2,z2|=(y1z2-z1y2)i-(x1z2-z1x2)j+(x1y2-y1x2)k
|
29
|
-
|
30
|
-
A=y1z2-z1y2
|
31
|
-
B=-(x1z2-z1x2)
|
32
|
-
C=(x1y2-y1x2)
|
33
|
-
だと思う。
|
34
|
-
|
35
|
-
法線は正規化する必要があるのでn=A/ √A^2+B^2+C^2 , B/√A^2+B^2+C^2,
|
36
|
-
C/√A^2+B^2+C^2,
|
37
|
-
|
38
|
-
|
39
|
-
1と2どちらがただしいでしょうか。
|
40
|
-
|
41
|
-
間違えてたらすいません。責任とりません。
|
42
|
-
間違えてたら嫌なので削除します。
|
43
|
-
追記....ソースコードの再計算中に、x座標とz座標の計算をまちがえたかもしれないが、ベクトルの計算を満たしても左回りの計算を満たさないケースを否定できないかもしれないので、ソースコードを削除します。
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
参考文献。。3Dグラフィックスのための数学 工学社
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
正規化し
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
求めた内積はclampを施し、0.0 ~ 1.0にクリップします。
|
71
|
-
マイナス部分は光の量を逆に奪ってしまうので、マイナスにならない様にします。
|
72
|
-
|
1
|
+
1.追記ベクトルA=(2,-1,3)のベクトルAを正規化しなさい
|
2
|
+
|
3
|
+
A^2=2^2+(-1)^2+3^2=4+1+9=14
|
4
|
+
|
5
|
+
正規化したベクトルは(2/√14,-1/√14,3/√14)になります.
|
6
|
+
|
7
|
+
2.ポリゴンの3頂点をv1=(1,0,0),v2=(0,1,0),v3=(0,0,1)として法線を正規化しなさい
|
8
|
+
|
9
|
+
ベクトルv1v3=v3-v1=(0-1,0-0,1-0)=(-1,0,1),
|
10
|
+
ベクトルv1v2=v2-v1=(0-1,1-0,0-0)=(-1,1,0)
|
11
|
+
法線は直交するので、ベクトルv1v3 x ベクトルv1v2=
|
12
|
+
|i,j,k|
|
13
|
+
|-1,0,1|
|
14
|
+
|-1,1,0|=(-1,-1,-1)
|
15
|
+
法線は正規化して(-1/√3,-1/√3,-1/√3)
|
16
|
+
|
17
|
+
|
18
|
+
3.必要な計算
|
19
|
+
|
20
|
+
|
21
|
+
→AB=→b- →a
|
22
|
+
|
23
|
+
|
24
|
+
2つのベクトル(x1,y1,z1)(x2,y2,z2)の時,
|
25
|
+
|
26
|
+
v1*v2=|i,j,k|
|
27
|
+
|x1,y1,z1|
|
28
|
+
|x2,y2,z2|=(y1z2-z1y2)i-(x1z2-z1x2)j+(x1y2-y1x2)k
|
29
|
+
|
30
|
+
A=y1z2-z1y2
|
31
|
+
B=-(x1z2-z1x2)
|
32
|
+
C=(x1y2-y1x2)
|
33
|
+
だと思う。
|
34
|
+
|
35
|
+
法線は正規化する必要があるのでn=A/ √A^2+B^2+C^2 , B/√A^2+B^2+C^2,
|
36
|
+
C/√A^2+B^2+C^2,
|
37
|
+
|
38
|
+
|
39
|
+
1と2どちらがただしいでしょうか。
|
40
|
+
|
41
|
+
間違えてたらすいません。責任とりません。
|
42
|
+
間違えてたら嫌なので削除します。
|
43
|
+
追記....ソースコードの再計算中に、x座標とz座標の計算をまちがえたかもしれないが、ベクトルの計算を満たしても左回りの計算を満たさないケースを否定できないかもしれないので、ソースコードを削除します。
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
|
50
|
+
参考文献。。3Dグラフィックスのための数学 工学社
|
51
|
+
|
52
|
+
参考文献には、前法線と、移動後の後法線の概念がありました。glRotatef(angle,1,0,0);等でカバーできているか、それとも、数式でカバーするのか、わからない問題が新たに出てしまいました。
|
53
|
+
|
54
|
+
|
55
|
+
追記.... 正規化した法線の値が-1.0~1.0の値になっていました。正規化した値は0.0~1.0かもしれないので追記します。
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
https://qiita.com/yoship1639/items/75505244b6c242d50f71
|
60
|
+
|
61
|
+
dot(n, normalize(-wLightDir))は、法線と正規化させたディレクショナルライトの向きの内積を取る処理です。
|
62
|
+
wLightDirがマイナスなのは法線と逆向きの状態を直すためです。
|
63
|
+
dotの結果は、向きが近ければ近いほど1.0に近づき、向きが反対に近いほど-1.0に近づきます。
|
64
|
+
正規化されたベクトル同士の内積は必ず-1.0 ~ 1.0の間に収束されます。
|
65
|
+
1.0に近いと明るく、0.0に近いと暗くなります。
|
66
|
+
|
67
|
+
求めた内積はclampを施し、0.0 ~ 1.0にクリップします。
|
68
|
+
マイナス部分は光の量を逆に奪ってしまうので、マイナスにならない様にします。
|
69
|
+
|
73
70
|
だそうです。
|
42
文の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -55,7 +55,7 @@
|
|
55
55
|
正規化してポリゴンを反射するつもりが、ポリゴンが反射せず黒くなってしまいました。こういう計算だと思ったのですが、正規化して反射するようにしたいです。normalを使いましたが、急いで直したため、その他にも誤り等ありましたら、申し訳ありません。責任とれません。
|
56
56
|
|
57
57
|
|
58
|
-
追記.... 正規化した法線の値が-1.0~1.0の値になっていました。正規化した値は0.0~1.0かもしれないので
|
58
|
+
追記.... 正規化した法線の値が-1.0~1.0の値になっていました。正規化した値は0.0~1.0かもしれないので追記します。
|
59
59
|
|
60
60
|
|
61
61
|
|
41
文の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -57,6 +57,17 @@
|
|
57
57
|
|
58
58
|
追記.... 正規化した法線の値が-1.0~1.0の値になっていました。正規化した値は0.0~1.0かもしれないのであさってたら、基本は2種類。
|
59
59
|
|
60
|
+
|
61
|
+
|
62
|
+
https://qiita.com/yoship1639/items/75505244b6c242d50f71
|
63
|
+
|
64
|
+
dot(n, normalize(-wLightDir))は、法線と正規化させたディレクショナルライトの向きの内積を取る処理です。
|
60
|
-
|
65
|
+
wLightDirがマイナスなのは法線と逆向きの状態を直すためです。
|
66
|
+
dotの結果は、向きが近ければ近いほど1.0に近づき、向きが反対に近いほど-1.0に近づきます。
|
67
|
+
正規化されたベクトル同士の内積は必ず-1.0 ~ 1.0の間に収束されます。
|
61
|
-
|
68
|
+
1.0に近いと明るく、0.0に近いと暗くなります。
|
69
|
+
|
70
|
+
求めた内積はclampを施し、0.0 ~ 1.0にクリップします。
|
62
|
-
|
71
|
+
マイナス部分は光の量を逆に奪ってしまうので、マイナスにならない様にします。
|
72
|
+
|
73
|
+
だそうです。
|
40
文の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -55,4 +55,8 @@
|
|
55
55
|
正規化してポリゴンを反射するつもりが、ポリゴンが反射せず黒くなってしまいました。こういう計算だと思ったのですが、正規化して反射するようにしたいです。normalを使いましたが、急いで直したため、その他にも誤り等ありましたら、申し訳ありません。責任とれません。
|
56
56
|
|
57
57
|
|
58
|
-
追記.... 正規化した法線の値が-1.0~1.0の値になっていました。正規化した値は0.0~1.0かもしれないので
|
58
|
+
追記.... 正規化した法線の値が-1.0~1.0の値になっていました。正規化した値は0.0~1.0かもしれないのであさってたら、基本は2種類。
|
59
|
+
|
60
|
+
0から1の範囲の正規化
|
61
|
+
-1から1の範囲の正規化だそうです。という文献があった。
|
62
|
+
計算式が違ったのと分野が違うので間違えてるかもしれないけれど。
|
39
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -52,4 +52,7 @@
|
|
52
52
|
|
53
53
|
|
54
54
|
|
55
|
-
正規化してポリゴンを反射するつもりが、ポリゴンが反射せず黒くなってしまいました。こういう計算だと思ったのですが、正規化して反射するようにしたいです。normalを使いましたが、急いで直したため、その他にも誤り等ありましたら、申し訳ありません。責任とれません。
|
55
|
+
正規化してポリゴンを反射するつもりが、ポリゴンが反射せず黒くなってしまいました。こういう計算だと思ったのですが、正規化して反射するようにしたいです。normalを使いましたが、急いで直したため、その他にも誤り等ありましたら、申し訳ありません。責任とれません。
|
56
|
+
|
57
|
+
|
58
|
+
追記.... 正規化した法線の値が-1.0~1.0の値になっていました。正規化した値は0.0~1.0かもしれないのでおそらくどこか間違いました。
|
38
文の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -40,7 +40,7 @@
|
|
40
40
|
|
41
41
|
間違えてたらすいません。責任とりません。
|
42
42
|
間違えてたら嫌なので削除します。
|
43
|
-
追記....ソースコードの再計算中に、ベクトルを満た
|
43
|
+
追記....ソースコードの再計算中に、x座標とz座標の計算をまちがえたかもしれないが、ベクトルの計算を満たしても左回りの計算を満たさないケースを否定できないかもしれないので、ソースコードを削除します。
|
44
44
|
|
45
45
|
|
46
46
|
|
37
文の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -40,7 +40,8 @@
|
|
40
40
|
|
41
41
|
間違えてたらすいません。責任とりません。
|
42
42
|
間違えてたら嫌なので削除します。
|
43
|
-
追記....ソースコードに、ベクトルを満たすが左回りを満たさない
|
43
|
+
追記....ソースコードの再計算中に、ベクトルを満たすが左回りの計算を満たさないケースがあったのでソースコードを削除します。
|
44
|
+
|
44
45
|
|
45
46
|
|
46
47
|
|
36
文の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -40,7 +40,7 @@
|
|
40
40
|
|
41
41
|
間違えてたらすいません。責任とりません。
|
42
42
|
間違えてたら嫌なので削除します。
|
43
|
-
追記....ソースコードに、ベクトル
|
43
|
+
追記....ソースコードに、ベクトルを満たすが左回りを満たさないというミスがあったので削除します。
|
44
44
|
|
45
45
|
|
46
46
|
|
35
文の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -40,10 +40,12 @@
|
|
40
40
|
|
41
41
|
間違えてたらすいません。責任とりません。
|
42
42
|
間違えてたら嫌なので削除します。
|
43
|
+
追記....ソースコードに、ベクトル(ほさき-根本)を満たすが左回りを満たさないというミスがあったので削除します。
|
43
44
|
|
44
45
|
|
45
46
|
|
46
47
|
|
48
|
+
|
47
49
|
参考文献。。3Dグラフィックスのための数学 工学社
|
48
50
|
|
49
51
|
|
34
文の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -38,67 +38,12 @@
|
|
38
38
|
|
39
39
|
1と2どちらがただしいでしょうか。
|
40
40
|
|
41
|
-
追記2の方法
|
42
|
-
```
|
43
|
-
glEnable(GL_LIGHTING);
|
44
|
-
|
45
|
-
glBegin(GL_TRIANGLES);
|
46
|
-
////修正しました。間違えました///////////
|
47
|
-
|
48
|
-
例:法線の計算の a[0],b[0],a[1],b[1],a[2],b[2] =f 390 //4966 389//4966 2503 //4966
|
49
|
-
の 390 389 2503の面のtriangle なので,
|
50
|
-
390番目のx,y,z 389番目のx,y,z 2503番目のx,y,z
|
51
|
-
|
52
|
-
float x1=v[3*a[1]-3]-v[3*a[2]-3];//389のx座標 - 2503のx座標
|
53
|
-
float y1=v[3*a[1]-2]-v[3*a[2]-2];//389のy座標 - 2503のy座標
|
54
|
-
float z1=v[3*a[1]-1]-v[3*a[2]-1];//389のz座標 - 2503のz座標
|
55
|
-
|
56
|
-
float x2=v[3*a[1]-3]-v[3*a[0]-3];////389のx座標 - 390のx座標 (修正)
|
57
|
-
float y2=v[3*a[1]-2]-v[3*a[0]-2];///389のy座標 - 390のy座標 (修正)
|
58
|
-
float z2=v[3*a[1]-1]-v[3*a[0]-1];////389のz座標 - 390のz座標 (修正)
|
59
|
-
その他
|
60
|
-
float x1=v[3*a[0]-3]-v[3*a[1]-3];
|
61
|
-
float y1=v[3*a[0]-2]-v[3*a[1]-2];
|
62
|
-
float z1=v[3*a[0]-1]-v[3*a[1]-1];
|
63
|
-
|
64
|
-
float x2=v[3*a[0]-3]-v[3*a[2]-3];
|
65
|
-
float y2=v[3*a[0]-2]-v[3*a[2]-2];
|
66
|
-
float z2=v[3*a[0]-1]-v[3*a[2]-1];
|
67
|
-
その他
|
68
|
-
float x1=v[3*a[2]-3]-v[3*a[0]-3];
|
69
|
-
float y1=v[3*a[2]-2]-v[3*a[0]-2];
|
70
|
-
float z1=v[3*a[2]-1]-v[3*a[0]-1];
|
71
|
-
|
72
|
-
float x2=v[3*a[2]-3]-v[3*a[1]-3];
|
73
|
-
float y2=v[3*a[2]-2]-v[3*a[1]-2];
|
74
|
-
float z2=v[3*a[2]-1]-v[3*a[1]-1];
|
75
|
-
|
76
|
-
図を書いたんですけど
|
77
|
-
三角形の図を書き表が左回りなので、左回りで計算してください(他サイトでは右ねじって記述)
|
78
41
|
間違えてたらすいません。責任とりません。
|
42
|
+
間違えてたら嫌なので削除します。
|
79
43
|
|
80
|
-
よく
|
81
|
-
ある公式らしいのでそのまま使う。
|
82
|
-
float V_X=y1*z2-z1*y2;
|
83
|
-
float V_Y=-(x1*z2-z1*x2);
|
84
|
-
float V_Z=x1*y2-y1*x2;
|
85
44
|
|
86
|
-
float la=sqrt(V_X*V_X+V_Y*V_Y+V_Z*V_Z);
|
87
45
|
|
88
|
-
glNormal3f(V_X/la,V_Y/la,V_Z/la);
|
89
|
-
|
90
|
-
glVertex3f(v[3*a[0]-3],v[3*a[0]-2],v[3*a[0]-1]);
|
91
46
|
|
92
|
-
glVertex3f(v[3*a[1]-3], v[3*a[1]-2], v[3*a[1]-1]);
|
93
|
-
|
94
|
-
glVertex3f(v[3*a[2]-3], v[3*a[2]-2], v[3*a[2]-1]);
|
95
|
-
glEnd();
|
96
|
-
glDisable(GL_LIGHTING);
|
97
|
-
|
98
|
-
```
|
99
|
-
|
100
|
-
|
101
|
-
|
102
47
|
参考文献。。3Dグラフィックスのための数学 工学社
|
103
48
|
|
104
49
|
|
33
文の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -22,7 +22,7 @@
|
|
22
22
|
|
23
23
|
|
24
24
|
2つのベクトル(x1,y1,z1)(x2,y2,z2)の時,
|
25
|
-
|
25
|
+
|
26
26
|
v1*v2=|i,j,k|
|
27
27
|
|x1,y1,z1|
|
28
28
|
|x2,y2,z2|=(y1z2-z1y2)i-(x1z2-z1x2)j+(x1y2-y1x2)k
|
@@ -100,7 +100,8 @@
|
|
100
100
|
|
101
101
|
|
102
102
|
参考文献。。3Dグラフィックスのための数学 工学社
|
103
|
-
ITtextコンピュータグラフィックス ohrmusha(補足のみ)
|
104
103
|
|
105
104
|
|
105
|
+
|
106
|
+
|
106
107
|
正規化してポリゴンを反射するつもりが、ポリゴンが反射せず黒くなってしまいました。こういう計算だと思ったのですが、正規化して反射するようにしたいです。normalを使いましたが、急いで直したため、その他にも誤り等ありましたら、申し訳ありません。責任とれません。
|
32
文の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -21,7 +21,7 @@
|
|
21
21
|
→AB=→b- →a
|
22
22
|
|
23
23
|
|
24
|
-
2つのベクトル
|
24
|
+
2つのベクトル(x1,y1,z1)(x2,y2,z2)の時,
|
25
25
|
(補足)
|
26
26
|
v1*v2=|i,j,k|
|
27
27
|
|x1,y1,z1|
|
31
文の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -21,7 +21,7 @@
|
|
21
21
|
→AB=→b- →a
|
22
22
|
|
23
23
|
|
24
|
-
2つのベクトル
|
24
|
+
2つのベクトルが(x1,y1,z1)(x2,y2,z2)の時,
|
25
25
|
(補足)
|
26
26
|
v1*v2=|i,j,k|
|
27
27
|
|x1,y1,z1|
|
30
文の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -20,6 +20,8 @@
|
|
20
20
|
|
21
21
|
→AB=→b- →a
|
22
22
|
|
23
|
+
|
24
|
+
2つのベクトル A=(x1,y1,z1)B=(x2,y2,z2)の時,
|
23
25
|
(補足)
|
24
26
|
v1*v2=|i,j,k|
|
25
27
|
|x1,y1,z1|
|
29
文の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -16,24 +16,24 @@
|
|
16
16
|
|
17
17
|
|
18
18
|
3.必要な計算
|
19
|
-
ポリゴンの3頂点が
|
20
|
-
v1=(a1,b1,c1),
|
21
|
-
v2=(a2,b2,c2),
|
22
|
-
v3=(a3,b3,c3)のとき、
|
23
|
-
ベクトルv1v3=(a3-a1,b3-b1,c3-c1)
|
24
|
-
ベクトルv1v2=(a2-a1,b2-b1,c2-c1),
|
25
19
|
|
26
20
|
|
27
|
-
|
21
|
+
→AB=→b- →a
|
28
22
|
|
29
|
-
法線は正規化する必要があるのでn=A/ √A^2+B^2+C^2 , B/√A^2+B^2+C^2,
|
30
|
-
C/√A^2+B^2+C^2,
|
31
|
-
|
32
23
|
(補足)
|
33
24
|
v1*v2=|i,j,k|
|
34
25
|
|x1,y1,z1|
|
35
26
|
|x2,y2,z2|=(y1z2-z1y2)i-(x1z2-z1x2)j+(x1y2-y1x2)k
|
36
27
|
|
28
|
+
A=y1z2-z1y2
|
29
|
+
B=-(x1z2-z1x2)
|
30
|
+
C=(x1y2-y1x2)
|
31
|
+
だと思う。
|
32
|
+
|
33
|
+
法線は正規化する必要があるのでn=A/ √A^2+B^2+C^2 , B/√A^2+B^2+C^2,
|
34
|
+
C/√A^2+B^2+C^2,
|
35
|
+
|
36
|
+
|
37
37
|
1と2どちらがただしいでしょうか。
|
38
38
|
|
39
39
|
追記2の方法
|
28
文の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -52,7 +52,7 @@
|
|
52
52
|
float z1=v[3*a[1]-1]-v[3*a[2]-1];//389のz座標 - 2503のz座標
|
53
53
|
|
54
54
|
float x2=v[3*a[1]-3]-v[3*a[0]-3];////389のx座標 - 390のx座標 (修正)
|
55
|
-
float y2=v[3*a[1]-2]-v[3*a[0]-2];///389のy座標 - 390のy座標
|
55
|
+
float y2=v[3*a[1]-2]-v[3*a[0]-2];///389のy座標 - 390のy座標 (修正)
|
56
56
|
float z2=v[3*a[1]-1]-v[3*a[0]-1];////389のz座標 - 390のz座標 (修正)
|
57
57
|
その他
|
58
58
|
float x1=v[3*a[0]-3]-v[3*a[1]-3];
|
@@ -72,7 +72,7 @@
|
|
72
72
|
float z2=v[3*a[2]-1]-v[3*a[1]-1];
|
73
73
|
|
74
74
|
図を書いたんですけど
|
75
|
-
三角形の図を書き表が左回りなので、左回りで計算してください
|
75
|
+
三角形の図を書き表が左回りなので、左回りで計算してください(他サイトでは右ねじって記述)
|
76
76
|
間違えてたらすいません。責任とりません。
|
77
77
|
|
78
78
|
よく
|
27
文の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -71,9 +71,10 @@
|
|
71
71
|
float y2=v[3*a[2]-2]-v[3*a[1]-2];
|
72
72
|
float z2=v[3*a[2]-1]-v[3*a[1]-1];
|
73
73
|
|
74
|
+
図を書いたんですけど
|
75
|
+
三角形の図を書き表が左回りなので、左回りで計算してください
|
74
|
-
|
76
|
+
間違えてたらすいません。責任とりません。
|
75
77
|
|
76
|
-
|
77
78
|
よく
|
78
79
|
ある公式らしいのでそのまま使う。
|
79
80
|
float V_X=y1*z2-z1*y2;
|
26
文の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -47,13 +47,13 @@
|
|
47
47
|
の 390 389 2503の面のtriangle なので,
|
48
48
|
390番目のx,y,z 389番目のx,y,z 2503番目のx,y,z
|
49
49
|
|
50
|
-
float x1=v[3*a[1]-3]-v[3*a[2]-3];//389のx座標 -
|
50
|
+
float x1=v[3*a[1]-3]-v[3*a[2]-3];//389のx座標 - 2503のx座標
|
51
|
-
float y1=v[3*a[1]-2]-v[3*a[2]-2];//389のy座標 -
|
51
|
+
float y1=v[3*a[1]-2]-v[3*a[2]-2];//389のy座標 - 2503のy座標
|
52
|
-
float z1=v[3*a[1]-1]-v[3*a[2]-1];//389のz座標 -
|
52
|
+
float z1=v[3*a[1]-1]-v[3*a[2]-1];//389のz座標 - 2503のz座標
|
53
53
|
|
54
|
-
float x2=v[3*a[1]-3]-v[3*a[0]-3];////
|
54
|
+
float x2=v[3*a[1]-3]-v[3*a[0]-3];////389のx座標 - 390のx座標 (修正)
|
55
|
-
float y2=v[3*a[1]-2]-v[3*a[0]-2];///
|
55
|
+
float y2=v[3*a[1]-2]-v[3*a[0]-2];///389のy座標 - 390のy座標 (修正)
|
56
|
-
float z2=v[3*a[1]-1]-v[3*a[0]-1];////
|
56
|
+
float z2=v[3*a[1]-1]-v[3*a[0]-1];////389のz座標 - 390のz座標 (修正)
|
57
57
|
その他
|
58
58
|
float x1=v[3*a[0]-3]-v[3*a[1]-3];
|
59
59
|
float y1=v[3*a[0]-2]-v[3*a[1]-2];
|
25
文の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -47,17 +47,35 @@
|
|
47
47
|
の 390 389 2503の面のtriangle なので,
|
48
48
|
390番目のx,y,z 389番目のx,y,z 2503番目のx,y,z
|
49
49
|
|
50
|
-
float x1=v[3*a[1]-3]-v[3*a[
|
50
|
+
float x1=v[3*a[1]-3]-v[3*a[2]-3];//389のx座標 - 390のx座標
|
51
|
-
float y1=v[3*a[1]-2]-v[3*a[
|
51
|
+
float y1=v[3*a[1]-2]-v[3*a[2]-2];//389のy座標 - 390のy座標
|
52
|
-
float z1=v[3*a[1]-1]-v[3*a[
|
52
|
+
float z1=v[3*a[1]-1]-v[3*a[2]-1];//389のz座標 - 390のz座標
|
53
53
|
|
54
|
-
float x2=v[3*a[
|
54
|
+
float x2=v[3*a[1]-3]-v[3*a[0]-3];////2503のx座標 - 390のx座標 (修正)
|
55
|
-
float y2=v[3*a[
|
55
|
+
float y2=v[3*a[1]-2]-v[3*a[0]-2];///2503のy座標 - 390のy座標 (修正)
|
56
|
-
float z2=v[3*a[
|
56
|
+
float z2=v[3*a[1]-1]-v[3*a[0]-1];////2503のz座標 - 390のz座標 (修正)
|
57
|
-
|
57
|
+
その他
|
58
|
+
float x1=v[3*a[0]-3]-v[3*a[1]-3];
|
59
|
+
float y1=v[3*a[0]-2]-v[3*a[1]-2];
|
60
|
+
float z1=v[3*a[0]-1]-v[3*a[1]-1];
|
58
61
|
|
59
|
-
|
62
|
+
float x2=v[3*a[0]-3]-v[3*a[2]-3];
|
63
|
+
float y2=v[3*a[0]-2]-v[3*a[2]-2];
|
64
|
+
float z2=v[3*a[0]-1]-v[3*a[2]-1];
|
65
|
+
その他
|
66
|
+
float x1=v[3*a[2]-3]-v[3*a[0]-3];
|
67
|
+
float y1=v[3*a[2]-2]-v[3*a[0]-2];
|
68
|
+
float z1=v[3*a[2]-1]-v[3*a[0]-1];
|
60
69
|
|
70
|
+
float x2=v[3*a[2]-3]-v[3*a[1]-3];
|
71
|
+
float y2=v[3*a[2]-2]-v[3*a[1]-2];
|
72
|
+
float z2=v[3*a[2]-1]-v[3*a[1]-1];
|
73
|
+
|
74
|
+
図を書いたんですけど間違えてたらすいません。責任とりません。
|
75
|
+
|
76
|
+
|
77
|
+
よく
|
78
|
+
ある公式らしいのでそのまま使う。
|
61
79
|
float V_X=y1*z2-z1*y2;
|
62
80
|
float V_Y=-(x1*z2-z1*x2);
|
63
81
|
float V_Z=x1*y2-y1*x2;
|
24
文の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -77,11 +77,9 @@
|
|
77
77
|
```
|
78
78
|
|
79
79
|
|
80
|
-
間違いについて教えてください。
|
81
80
|
|
82
|
-
|
83
81
|
参考文献。。3Dグラフィックスのための数学 工学社
|
84
82
|
ITtextコンピュータグラフィックス ohrmusha(補足のみ)
|
85
83
|
|
86
84
|
|
87
|
-
正規化してポリゴンを反射するつもりが、ポリゴンが反射せず黒くなってしまいました。こういう計算だと思ったのですが、正規化して反射するようにしたいです。normalを使いましたが、急いで直したため、その他にも誤り等ありましたら、申し訳ありません。
|
85
|
+
正規化してポリゴンを反射するつもりが、ポリゴンが反射せず黒くなってしまいました。こういう計算だと思ったのですが、正規化して反射するようにしたいです。normalを使いましたが、急いで直したため、その他にも誤り等ありましたら、申し訳ありません。責任とれません。
|
23
文の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
ベクトルv1v3=v3-v1=(0-1,0-0,1-0)=(-1,0,1),
|
10
10
|
ベクトルv1v2=v2-v1=(0-1,1-0,0-0)=(-1,1,0)
|
11
|
-
法線は直交するので、ベクトルv1v3 x ベクトル
|
11
|
+
法線は直交するので、ベクトルv1v3 x ベクトルv1v2=
|
12
12
|
|i,j,k|
|
13
13
|
|-1,0,1|
|
14
14
|
|-1,1,0|=(-1,-1,-1)
|
22
文の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
2.ポリゴンの3頂点をv1=(1,0,0),v2=(0,1,0),v3=(0,0,1)として法線を正規化しなさい
|
8
8
|
|
9
|
-
ベクトルv1v3=v3-
|
9
|
+
ベクトルv1v3=v3-v1=(0-1,0-0,1-0)=(-1,0,1),
|
10
10
|
ベクトルv1v2=v2-v1=(0-1,1-0,0-0)=(-1,1,0)
|
11
11
|
法線は直交するので、ベクトルv1v3 x ベクトルv2v1=
|
12
12
|
|i,j,k|
|
21
まとめ
title
CHANGED
File without changes
|
body
CHANGED
@@ -43,7 +43,9 @@
|
|
43
43
|
glBegin(GL_TRIANGLES);
|
44
44
|
////修正しました。間違えました///////////
|
45
45
|
|
46
|
-
例:法線の計算の a[0],b[0],a[1],b[1],a[2],b[2] =f 390 //4966 389//4966 2503 //4966
|
46
|
+
例:法線の計算の a[0],b[0],a[1],b[1],a[2],b[2] =f 390 //4966 389//4966 2503 //4966
|
47
|
+
の 390 389 2503の面のtriangle なので,
|
48
|
+
390番目のx,y,z 389番目のx,y,z 2503番目のx,y,z
|
47
49
|
|
48
50
|
float x1=v[3*a[1]-3]-v[3*a[0]-3];//389のx座標 - 390のx座標
|
49
51
|
float y1=v[3*a[1]-2]-v[3*a[0]-2];//389のy座標 - 390のy座標
|
20
文の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
ベクトルv1v3=v3-v2=(0-1,0-0,1-0)=(-1,0,1),
|
10
10
|
ベクトルv1v2=v2-v1=(0-1,1-0,0-0)=(-1,1,0)
|
11
|
-
法線は直交するので、ベクトル
|
11
|
+
法線は直交するので、ベクトルv1v3 x ベクトルv2v1=
|
12
12
|
|i,j,k|
|
13
13
|
|-1,0,1|
|
14
14
|
|-1,1,0|=(-1,-1,-1)
|
@@ -42,14 +42,20 @@
|
|
42
42
|
|
43
43
|
glBegin(GL_TRIANGLES);
|
44
44
|
////修正しました。間違えました///////////
|
45
|
-
float x1=v[3*a[1]-3]-v[3*a[0]-3];
|
46
|
-
float y1=v[3*a[1]-2]-v[3*a[0]-2];
|
47
|
-
float z1=v[3*a[1]-1]-v[3*a[0]-1];
|
48
45
|
|
46
|
+
例:法線の計算の a[0],b[0],a[1],b[1],a[2],b[2] =f 390 //4966 389//4966 2503 //4966 の 390 389 2503の面のtriangle なので,390番目のx,y,z 389番目のx,y,z 2503番目のx,y,z
|
47
|
+
|
49
|
-
float
|
48
|
+
float x1=v[3*a[1]-3]-v[3*a[0]-3];//389のx座標 - 390のx座標
|
50
|
-
float
|
49
|
+
float y1=v[3*a[1]-2]-v[3*a[0]-2];//389のy座標 - 390のy座標
|
51
|
-
float
|
50
|
+
float z1=v[3*a[1]-1]-v[3*a[0]-1];//389のz座標 - 390のz座標
|
51
|
+
|
52
|
+
float x2=v[3*a[2]-3]-v[3*a[0]-3];////2503のx座標 - 390のx座標 (修正)
|
53
|
+
float y2=v[3*a[2]-2]-v[3*a[0]-2];///2503のy座標 - 390のy座標 (修正)
|
54
|
+
float z2=v[3*a[2]-1]-v[3*a[0]-1];////2503のz座標 - 390のz座標 (修正)
|
52
55
|
|
56
|
+
|
57
|
+
で上記、2503と389 を入れかえるとなぜうまくいかないのでしょうか。
|
58
|
+
|
53
59
|
float V_X=y1*z2-z1*y2;
|
54
60
|
float V_Y=-(x1*z2-z1*x2);
|
55
61
|
float V_Z=x1*y2-y1*x2;
|
@@ -67,7 +73,8 @@
|
|
67
73
|
glDisable(GL_LIGHTING);
|
68
74
|
|
69
75
|
```
|
70
|
-
|
76
|
+
|
77
|
+
|
71
78
|
間違いについて教えてください。
|
72
79
|
|
73
80
|
|
19
まとめ
title
CHANGED
File without changes
|
body
CHANGED
@@ -6,13 +6,13 @@
|
|
6
6
|
|
7
7
|
2.ポリゴンの3頂点をv1=(1,0,0),v2=(0,1,0),v3=(0,0,1)として法線を正規化しなさい
|
8
8
|
|
9
|
+
ベクトルv1v3=v3-v2=(0-1,0-0,1-0)=(-1,0,1),
|
9
|
-
ベクトルv1v2
|
10
|
+
ベクトルv1v2=v2-v1=(0-1,1-0,0-0)=(-1,1,0)
|
10
|
-
ベクトルv2v3=v3-v2=(0-0,0-1,1-0)=(0,-1,1)
|
11
11
|
法線は直交するので、ベクトルv1v2 x ベクトルv2v3=
|
12
12
|
|i,j,k|
|
13
|
-
|-1,
|
13
|
+
|-1,0,1|
|
14
|
-
|
|
14
|
+
|-1,1,0|=(-1,-1,-1)
|
15
|
-
法線は正規化して(1/√3,1/√3,1/√3)
|
15
|
+
法線は正規化して(-1/√3,-1/√3,-1/√3)
|
16
16
|
|
17
17
|
|
18
18
|
3.必要な計算
|
@@ -20,11 +20,12 @@
|
|
20
20
|
v1=(a1,b1,c1),
|
21
21
|
v2=(a2,b2,c2),
|
22
22
|
v3=(a3,b3,c3)のとき、
|
23
|
+
ベクトルv1v3=(a3-a1,b3-b1,c3-c1)
|
23
24
|
ベクトルv1v2=(a2-a1,b2-b1,c2-c1),
|
24
|
-
ベクトルv2v3=(a3-a2,b3-b2,c3-c2)
|
25
25
|
|
26
|
-
ベクトルv1v2 xベクトルv2v3= (A ,B, C)
|
27
26
|
|
27
|
+
ベクトルv1v3 xベクトルv1v2= (A ,B, C)
|
28
|
+
|
28
29
|
法線は正規化する必要があるのでn=A/ √A^2+B^2+C^2 , B/√A^2+B^2+C^2,
|
29
30
|
C/√A^2+B^2+C^2,
|
30
31
|
|
@@ -74,4 +75,4 @@
|
|
74
75
|
ITtextコンピュータグラフィックス ohrmusha(補足のみ)
|
75
76
|
|
76
77
|
|
77
|
-
正規化してポリゴンを反射するつもりが、ポリゴンが反射せず黒くなってしまいました。こういう計算だと思ったのですが、正規化して反射するようにしたいです。normalを使いましたが、その他にも誤り等ありましたら、申し訳ありません。
|
78
|
+
正規化してポリゴンを反射するつもりが、ポリゴンが反射せず黒くなってしまいました。こういう計算だと思ったのですが、正規化して反射するようにしたいです。normalを使いましたが、急いで直したため、その他にも誤り等ありましたら、申し訳ありません。
|
18
文の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -40,14 +40,14 @@
|
|
40
40
|
glEnable(GL_LIGHTING);
|
41
41
|
|
42
42
|
glBegin(GL_TRIANGLES);
|
43
|
-
////修正しま
|
43
|
+
////修正しました。間違えました///////////
|
44
44
|
float x1=v[3*a[1]-3]-v[3*a[0]-3];
|
45
45
|
float y1=v[3*a[1]-2]-v[3*a[0]-2];
|
46
46
|
float z1=v[3*a[1]-1]-v[3*a[0]-1];
|
47
47
|
|
48
|
-
float x2=v[3*a[2]-3]-v[3*a[
|
48
|
+
float x2=v[3*a[2]-3]-v[3*a[0]-3];////修正
|
49
|
-
float y2=v[3*a[2]-2]-v[3*a[
|
49
|
+
float y2=v[3*a[2]-2]-v[3*a[0]-2];///修正
|
50
|
-
float z2=v[3*a[2]-1]-v[3*a[
|
50
|
+
float z2=v[3*a[2]-1]-v[3*a[0]-1];////修正
|
51
51
|
|
52
52
|
float V_X=y1*z2-z1*y2;
|
53
53
|
float V_Y=-(x1*z2-z1*x2);
|
17
文の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -40,14 +40,14 @@
|
|
40
40
|
glEnable(GL_LIGHTING);
|
41
41
|
|
42
42
|
glBegin(GL_TRIANGLES);
|
43
|
+
////修正します。///////////
|
44
|
+
float x1=v[3*a[1]-3]-v[3*a[0]-3];
|
45
|
+
float y1=v[3*a[1]-2]-v[3*a[0]-2];
|
46
|
+
float z1=v[3*a[1]-1]-v[3*a[0]-1];
|
43
47
|
|
44
|
-
float x1=NORMAL[3*b[1]-3]-NORMAL[3*b[0]-3];
|
45
|
-
float y1=NORMAL[3*b[1]-2]-NORMAL[3*b[0]-2];
|
46
|
-
float z1=NORMAL[3*b[1]-1]-NORMAL[3*b[0]-1];
|
47
|
-
|
48
|
-
float x2=
|
48
|
+
float x2=v[3*a[2]-3]-v[3*a[1]-3];
|
49
|
-
float y2=
|
49
|
+
float y2=v[3*a[2]-2]-v[3*a[1]-2];
|
50
|
-
float z2=
|
50
|
+
float z2=v[3*a[2]-1]-v[3*a[1]-1];
|
51
51
|
|
52
52
|
float V_X=y1*z2-z1*y2;
|
53
53
|
float V_Y=-(x1*z2-z1*x2);
|
16
文の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -15,6 +15,26 @@
|
|
15
15
|
法線は正規化して(1/√3,1/√3,1/√3)
|
16
16
|
|
17
17
|
|
18
|
+
3.必要な計算
|
19
|
+
ポリゴンの3頂点が
|
20
|
+
v1=(a1,b1,c1),
|
21
|
+
v2=(a2,b2,c2),
|
22
|
+
v3=(a3,b3,c3)のとき、
|
23
|
+
ベクトルv1v2=(a2-a1,b2-b1,c2-c1),
|
24
|
+
ベクトルv2v3=(a3-a2,b3-b2,c3-c2)
|
25
|
+
|
26
|
+
ベクトルv1v2 xベクトルv2v3= (A ,B, C)
|
27
|
+
|
28
|
+
法線は正規化する必要があるのでn=A/ √A^2+B^2+C^2 , B/√A^2+B^2+C^2,
|
29
|
+
C/√A^2+B^2+C^2,
|
30
|
+
|
31
|
+
(補足)
|
32
|
+
v1*v2=|i,j,k|
|
33
|
+
|x1,y1,z1|
|
34
|
+
|x2,y2,z2|=(y1z2-z1y2)i-(x1z2-z1x2)j+(x1y2-y1x2)k
|
35
|
+
|
36
|
+
1と2どちらがただしいでしょうか。
|
37
|
+
|
18
38
|
追記2の方法
|
19
39
|
```
|
20
40
|
glEnable(GL_LIGHTING);
|
@@ -50,72 +70,8 @@
|
|
50
70
|
間違いについて教えてください。
|
51
71
|
|
52
72
|
|
53
|
-
|
54
|
-
|
55
|
-
3.必要な計算
|
56
|
-
ポリゴンの3頂点が
|
57
|
-
v1=(a1,b1,c1),
|
58
|
-
v2=(a2,b2,c2),
|
59
|
-
v3=(a3,b3,c3)のとき、
|
60
|
-
ベクトルv1v2=(a2-a1,b2-b1,c2-c1),
|
61
|
-
ベクトルv2v3=(a3-a2,b3-b2,c3-c2)
|
62
|
-
|
63
|
-
ベクトルv1v2 xベクトルv2v3= (A ,B, C)
|
64
|
-
|
65
|
-
法線は正規化する必要があるのでn=A/ √A^2+B^2+C^2 , B/√A^2+B^2+C^2,
|
66
|
-
C/√A^2+B^2+C^2,
|
67
|
-
|
68
|
-
(補足)
|
69
|
-
v1*v2=|i,j,k|
|
70
|
-
|x1,y1,z1|
|
71
|
-
|x2,y2,z2|=(y1z2-z1y2)i-(x1z2-z1x2)j+(x1y2-y1x2)k
|
72
|
-
|
73
|
-
1と2どちらがただしいでしょうか。
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
73
|
参考文献。。3Dグラフィックスのための数学 工学社
|
79
74
|
ITtextコンピュータグラフィックス ohrmusha(補足のみ)
|
80
75
|
|
81
76
|
|
82
|
-
```追記1の方法
|
83
|
-
|
84
|
-
glEnable(GL_LIGHTNING);
|
85
|
-
glBegin(GL_TRIANGLES);
|
86
|
-
|
87
|
-
float la=sqrt(NORMAL[3*b[0]-3]*NORMAL[3*b[0]-3]+NORMAL[3*b[0]-2]*NORMAL[3*b[0]-2]+
|
88
|
-
|
89
|
-
NORMAL[3*b[0]-1]*NORMAL[3*b[0]-1]);
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
glNormal3f((NORMAL[3*b[0]-3])/la,(NORMAL[3*b[0]-2])/la,(NORMAL[3*b[0]-1])/la);
|
94
|
-
|
95
|
-
glVertex3f(v[3*a[0]-3],v[3*a[0]-2],v[3*a[0]-1]);
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
float lb=sqrt(NORMAL[3*b[1]-3]*NORMAL[3*b[1]-3]+NORMAL[3*b[1]-2]*NORMAL[3*b[1]-2]+
|
100
|
-
|
101
|
-
NORMAL[3*b[1]-1]*NORMAL[3*b[1]-1]);
|
102
|
-
|
103
|
-
glNormal3f((NORMAL[3*b[1]-3])/lb,(NORMAL[3*b[1]-2])/lb,(NORMAL[3*b[1]-1])/lb);
|
104
|
-
|
105
|
-
|
106
|
-
glVertex3f(v[3*a[1]-3], v[3*a[1]-2], v[3*a[1]-1]);
|
107
|
-
|
108
|
-
float lc=sqrt(NORMAL[3*b[2]-3]*NORMAL[3*b[2]-3]+NORMAL[3*b[2]-2]*NORMAL[3*b[2]-2]+
|
109
|
-
NORMAL[3*b[2]-1]*NORMAL[3*b[2]-1]);
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
glNormal3f((NORMAL[3*b[2]-3])/lc,(NORMAL[3*b[2]-2])/lc,(NORMAL[3*b[2]-1])/lc);
|
114
|
-
|
115
|
-
glVertex3f(v[3*a[2]-3], v[3*a[2]-2], v[3*a[2]-1]);
|
116
|
-
|
117
|
-
glEnd();
|
118
|
-
glDisable(GL_LIGHTNING);
|
119
|
-
|
120
|
-
```
|
121
77
|
正規化してポリゴンを反射するつもりが、ポリゴンが反射せず黒くなってしまいました。こういう計算だと思ったのですが、正規化して反射するようにしたいです。normalを使いましたが、その他にも誤り等ありましたら、申し訳ありません。
|
15
文の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -15,7 +15,7 @@
|
|
15
15
|
法線は正規化して(1/√3,1/√3,1/√3)
|
16
16
|
|
17
17
|
|
18
|
-
追記
|
18
|
+
追記2の方法
|
19
19
|
```
|
20
20
|
glEnable(GL_LIGHTING);
|
21
21
|
|
@@ -79,7 +79,7 @@
|
|
79
79
|
ITtextコンピュータグラフィックス ohrmusha(補足のみ)
|
80
80
|
|
81
81
|
|
82
|
-
```
|
82
|
+
```追記1の方法
|
83
83
|
|
84
84
|
glEnable(GL_LIGHTNING);
|
85
85
|
glBegin(GL_TRIANGLES);
|
14
文の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -14,6 +14,44 @@
|
|
14
14
|
|0,-1,1|=(1,1,1)
|
15
15
|
法線は正規化して(1/√3,1/√3,1/√3)
|
16
16
|
|
17
|
+
|
18
|
+
追記
|
19
|
+
```
|
20
|
+
glEnable(GL_LIGHTING);
|
21
|
+
|
22
|
+
glBegin(GL_TRIANGLES);
|
23
|
+
|
24
|
+
float x1=NORMAL[3*b[1]-3]-NORMAL[3*b[0]-3];
|
25
|
+
float y1=NORMAL[3*b[1]-2]-NORMAL[3*b[0]-2];
|
26
|
+
float z1=NORMAL[3*b[1]-1]-NORMAL[3*b[0]-1];
|
27
|
+
|
28
|
+
float x2=NORMAL[3*b[2]-3]-NORMAL[3*b[1]-3];
|
29
|
+
float y2=NORMAL[3*b[2]-2]-NORMAL[3*b[1]-2];
|
30
|
+
float z2=NORMAL[3*b[2]-1]-NORMAL[3*b[1]-1];
|
31
|
+
|
32
|
+
float V_X=y1*z2-z1*y2;
|
33
|
+
float V_Y=-(x1*z2-z1*x2);
|
34
|
+
float V_Z=x1*y2-y1*x2;
|
35
|
+
|
36
|
+
float la=sqrt(V_X*V_X+V_Y*V_Y+V_Z*V_Z);
|
37
|
+
|
38
|
+
glNormal3f(V_X/la,V_Y/la,V_Z/la);
|
39
|
+
|
40
|
+
glVertex3f(v[3*a[0]-3],v[3*a[0]-2],v[3*a[0]-1]);
|
41
|
+
|
42
|
+
glVertex3f(v[3*a[1]-3], v[3*a[1]-2], v[3*a[1]-1]);
|
43
|
+
|
44
|
+
glVertex3f(v[3*a[2]-3], v[3*a[2]-2], v[3*a[2]-1]);
|
45
|
+
glEnd();
|
46
|
+
glDisable(GL_LIGHTING);
|
47
|
+
|
48
|
+
```
|
49
|
+
形にしたんですけど、またポリゴンが黒くなってしまいました。
|
50
|
+
間違いについて教えてください。
|
51
|
+
|
52
|
+
|
53
|
+
|
54
|
+
|
17
55
|
3.必要な計算
|
18
56
|
ポリゴンの3頂点が
|
19
57
|
v1=(a1,b1,c1),
|
13
文の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -34,9 +34,9 @@
|
|
34
34
|
|
35
35
|
1と2どちらがただしいでしょうか。
|
36
36
|
|
37
|
-
私は前者の計算式で計算してしまいました。間違えてるような。
|
38
37
|
|
39
38
|
|
39
|
+
|
40
40
|
参考文献。。3Dグラフィックスのための数学 工学社
|
41
41
|
ITtextコンピュータグラフィックス ohrmusha(補足のみ)
|
42
42
|
|
12
文の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -34,8 +34,9 @@
|
|
34
34
|
|
35
35
|
1と2どちらがただしいでしょうか。
|
36
36
|
|
37
|
-
私は前者の計算式で計算してしまいました。
|
37
|
+
私は前者の計算式で計算してしまいました。間違えてるような。
|
38
38
|
|
39
|
+
|
39
40
|
参考文献。。3Dグラフィックスのための数学 工学社
|
40
41
|
ITtextコンピュータグラフィックス ohrmusha(補足のみ)
|
41
42
|
|
11
文の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -27,6 +27,7 @@
|
|
27
27
|
法線は正規化する必要があるのでn=A/ √A^2+B^2+C^2 , B/√A^2+B^2+C^2,
|
28
28
|
C/√A^2+B^2+C^2,
|
29
29
|
|
30
|
+
(補足)
|
30
31
|
v1*v2=|i,j,k|
|
31
32
|
|x1,y1,z1|
|
32
33
|
|x2,y2,z2|=(y1z2-z1y2)i-(x1z2-z1x2)j+(x1y2-y1x2)k
|
@@ -36,6 +37,7 @@
|
|
36
37
|
私は前者の計算式で計算してしまいました。
|
37
38
|
|
38
39
|
参考文献。。3Dグラフィックスのための数学 工学社
|
40
|
+
ITtextコンピュータグラフィックス ohrmusha(補足のみ)
|
39
41
|
|
40
42
|
|
41
43
|
```正規化
|
10
文の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -35,7 +35,9 @@
|
|
35
35
|
|
36
36
|
私は前者の計算式で計算してしまいました。
|
37
37
|
|
38
|
+
参考文献。。3Dグラフィックスのための数学 工学社
|
38
39
|
|
40
|
+
|
39
41
|
```正規化
|
40
42
|
|
41
43
|
glEnable(GL_LIGHTNING);
|
9
まとめ
title
CHANGED
File without changes
|
body
CHANGED
@@ -33,7 +33,7 @@
|
|
33
33
|
|
34
34
|
1と2どちらがただしいでしょうか。
|
35
35
|
|
36
|
-
私は前者の計算式で計算してしまいました。
|
36
|
+
私は前者の計算式で計算してしまいました。
|
37
37
|
|
38
38
|
|
39
39
|
```正規化
|
8
文の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,3 +1,41 @@
|
|
1
|
+
1.追記ベクトルA=(2,-1,3)のベクトルAを正規化しなさい
|
2
|
+
|
3
|
+
A^2=2^2+(-1)^2+3^2=4+1+9=14
|
4
|
+
|
5
|
+
正規化したベクトルは(2/√14,-1/√14,3/√14)になります.
|
6
|
+
|
7
|
+
2.ポリゴンの3頂点をv1=(1,0,0),v2=(0,1,0),v3=(0,0,1)として法線を正規化しなさい
|
8
|
+
|
9
|
+
ベクトルv1v2=v2-v1=(0-1,1-0,0-0)=(-1,1,0),
|
10
|
+
ベクトルv2v3=v3-v2=(0-0,0-1,1-0)=(0,-1,1)
|
11
|
+
法線は直交するので、ベクトルv1v2 x ベクトルv2v3=
|
12
|
+
|i,j,k|
|
13
|
+
|-1,1,0|
|
14
|
+
|0,-1,1|=(1,1,1)
|
15
|
+
法線は正規化して(1/√3,1/√3,1/√3)
|
16
|
+
|
17
|
+
3.必要な計算
|
18
|
+
ポリゴンの3頂点が
|
19
|
+
v1=(a1,b1,c1),
|
20
|
+
v2=(a2,b2,c2),
|
21
|
+
v3=(a3,b3,c3)のとき、
|
22
|
+
ベクトルv1v2=(a2-a1,b2-b1,c2-c1),
|
23
|
+
ベクトルv2v3=(a3-a2,b3-b2,c3-c2)
|
24
|
+
|
25
|
+
ベクトルv1v2 xベクトルv2v3= (A ,B, C)
|
26
|
+
|
27
|
+
法線は正規化する必要があるのでn=A/ √A^2+B^2+C^2 , B/√A^2+B^2+C^2,
|
28
|
+
C/√A^2+B^2+C^2,
|
29
|
+
|
30
|
+
v1*v2=|i,j,k|
|
31
|
+
|x1,y1,z1|
|
32
|
+
|x2,y2,z2|=(y1z2-z1y2)i-(x1z2-z1x2)j+(x1y2-y1x2)k
|
33
|
+
|
34
|
+
1と2どちらがただしいでしょうか。
|
35
|
+
|
36
|
+
私は前者の計算式で計算してしまいました。おそらく間違い
|
37
|
+
|
38
|
+
|
1
39
|
```正規化
|
2
40
|
|
3
41
|
glEnable(GL_LIGHTNING);
|
7
タイトルと文章の変更
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
正規化でポリゴンを反射させたい
|
1
|
+
正規化でポリゴンを反射させたいのに黒く映ってしまう
|
body
CHANGED
File without changes
|
6
タイトルと文章の変更
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
正規化でポリゴンを
|
1
|
+
正規化でポリゴンを反射させたい
|
body
CHANGED
File without changes
|
5
文の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
```正規化
|
2
2
|
|
3
|
-
|
3
|
+
glEnable(GL_LIGHTNING);
|
4
4
|
glBegin(GL_TRIANGLES);
|
5
5
|
|
6
6
|
float la=sqrt(NORMAL[3*b[0]-3]*NORMAL[3*b[0]-3]+NORMAL[3*b[0]-2]*NORMAL[3*b[0]-2]+
|
@@ -34,7 +34,7 @@
|
|
34
34
|
glVertex3f(v[3*a[2]-3], v[3*a[2]-2], v[3*a[2]-1]);
|
35
35
|
|
36
36
|
glEnd();
|
37
|
-
|
37
|
+
glDisable(GL_LIGHTNING);
|
38
38
|
|
39
39
|
```
|
40
|
-
正規化し
|
40
|
+
正規化してポリゴンを反射するつもりが、ポリゴンが反射せず黒くなってしまいました。こういう計算だと思ったのですが、正規化して反射するようにしたいです。normalを使いましたが、その他にも誤り等ありましたら、申し訳ありません。
|
4
文の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -37,4 +37,4 @@
|
|
37
37
|
//glDisable(GL_NORMALIZE);//消した
|
38
38
|
|
39
39
|
```
|
40
|
-
正規化したつもりが、画面にポリゴンが映らなくなってしまいました。こういう計算だと思ったのですが、正規化して画面にうつるようにしたいです。
|
40
|
+
正規化したつもりが、画面にポリゴンが映らなくなってしまいました。こういう計算だと思ったのですが、正規化して画面にうつるようにしたいです。normalを使いましたが、誤り等ありましたら、申し訳ありません。
|
3
タイトルの変更
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
正規化でポリゴンを画面に映したい
|
body
CHANGED
File without changes
|
2
誤字
title
CHANGED
File without changes
|
body
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
|
12
12
|
glNormal3f((NORMAL[3*b[0]-3])/la,(NORMAL[3*b[0]-2])/la,(NORMAL[3*b[0]-1])/la);
|
13
13
|
|
14
|
-
glVertex3f(v[3*a[0]-3],v[3*a[0]-2],v[3*a[0]-1]);
|
14
|
+
glVertex3f(v[3*a[0]-3],v[3*a[0]-2],v[3*a[0]-1]);
|
15
15
|
|
16
16
|
|
17
17
|
|
1
タイトルの変更
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
ベクトルの正規化でポリゴンを画面に
|
1
|
+
ベクトルの正規化でポリゴンを画面に映したい
|
body
CHANGED
File without changes
|