質問編集履歴
77
書式の改善
test
CHANGED
File without changes
|
test
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
書式の改善
test
CHANGED
File without changes
|
test
CHANGED
@@ -46,13 +46,10 @@
|
|
46
46
|
うまくコードにできませんでした。
|
47
47
|
|
48
48
|
追記.... 正規化した法線の値が-1.0~1.0の値になっていました。正規化した値は0.0~1.0かもしれないので追記します。
|
49
|
-
|
50
|
-
|
51
|
-
|
52
49
|
https://qiita.com/yoship1639/items/75505244b6c242d50f71
|
53
50
|
|
54
|
-
dot(n, normalize(-wLightDir))
|
51
|
+
dot(n, normalize(-wLightDir))
|
55
|
-
|
52
|
+
|
56
53
|
dotの結果は、向きが近ければ近いほど1.0に近づき、向きが反対に近いほど-1.0に近づきます。
|
57
54
|
正規化されたベクトル同士の内積は必ず-1.0 ~ 1.0の間に収束されます。
|
58
55
|
1.0に近いと明るく、0.0に近いと暗くなります。
|
75
まとめ
test
CHANGED
File without changes
|
test
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
まとめ
test
CHANGED
File without changes
|
test
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
まとめ
test
CHANGED
File without changes
|
test
CHANGED
@@ -43,33 +43,7 @@
|
|
43
43
|
|
44
44
|
間違えてたらすいません。責任とりません。
|
45
45
|
あと、こちらも責任取りませんが、結果がファイルの法線と同じ値となると思いましたが、なりませんでした。正規化した法線、V_X/la,V_Y/la,V_Z/laの計算途中に間違いがあるかもしれません。どこかに誤りがあるかもしれません。
|
46
|
-
|
47
|
-
(私の計算で、vnの数値をみたところ、だいたい小数点第三位までしか正しくなくて4桁目からずれているかんじになった。)
|
48
|
-
間違えてるみたいなのでソースコードは削除します。(また自前の計算途中に誤りがある場合使わないでください。)
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
さらに間違いなのかわからないですけど、
|
53
|
-
|
46
|
+
うまくコードにできませんでした。
|
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
47
|
|
74
48
|
追記.... 正規化した法線の値が-1.0~1.0の値になっていました。正規化した値は0.0~1.0かもしれないので追記します。
|
75
49
|
|
72
まとめ
test
CHANGED
File without changes
|
test
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
まとめ
test
CHANGED
File without changes
|
test
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
まとめ
test
CHANGED
File without changes
|
test
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
まとめ
test
CHANGED
File without changes
|
test
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
まとめ
test
CHANGED
File without changes
|
test
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
まとめ
test
CHANGED
File without changes
|
test
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
まとめ
test
CHANGED
File without changes
|
test
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
まとめ
test
CHANGED
File without changes
|
test
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
まとめ
test
CHANGED
File without changes
|
test
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
まとめ
test
CHANGED
File without changes
|
test
CHANGED
@@ -53,6 +53,11 @@
|
|
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);にかかってしまうので
|
58
|
+
|
59
|
+
法線が1のとき、モデルがfの法線(x//1,x//1,x//1)と1で、すべて一致したのであってたのかもしれないため
|
60
|
+
●の方法を推奨。
|
56
61
|
|
57
62
|
●頂点から正規化された法線を求めるのがうまくいかなかったので、 glNormal3fにあらかじめ用意してた法線の配列を与えました。こちらも使うにあたって自己責任でおねがいします。
|
58
63
|
|
62
まとめ
test
CHANGED
File without changes
|
test
CHANGED
@@ -57,9 +57,7 @@
|
|
57
57
|
●頂点から正規化された法線を求めるのがうまくいかなかったので、 glNormal3fにあらかじめ用意してた法線の配列を与えました。こちらも使うにあたって自己責任でおねがいします。
|
58
58
|
|
59
59
|
[参考サイト](https://docs.microsoft.com/ja-jp/windows/win32/opengl/glnormal3f)
|
60
|
-
|
60
|
+
|
61
|
-
ファイルの値、vn -0.9103 -0.1287 -0.3935は大体同じ値だったのですが、
|
62
|
-
同じ値と考えて、vn -0.9103 -0.1287 -0.3935はすでに正規化されていると考えていいのかわかりません。
|
63
61
|
|
64
62
|
|
65
63
|
glRotatef(angle,x,y,z);で数式はカバーされる。
|
61
まとめ
test
CHANGED
File without changes
|
test
CHANGED
@@ -57,7 +57,9 @@
|
|
57
57
|
●頂点から正規化された法線を求めるのがうまくいかなかったので、 glNormal3fにあらかじめ用意してた法線の配列を与えました。こちらも使うにあたって自己責任でおねがいします。
|
58
58
|
|
59
59
|
[参考サイト](https://docs.microsoft.com/ja-jp/windows/win32/opengl/glnormal3f)
|
60
|
-
|
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はすでに正規化されていると考えていいのかわかりません。
|
61
63
|
|
62
64
|
|
63
65
|
glRotatef(angle,x,y,z);で数式はカバーされる。
|
60
まとめ
test
CHANGED
File without changes
|
test
CHANGED
@@ -56,8 +56,7 @@
|
|
56
56
|
|
57
57
|
●頂点から正規化された法線を求めるのがうまくいかなかったので、 glNormal3fにあらかじめ用意してた法線の配列を与えました。こちらも使うにあたって自己責任でおねがいします。
|
58
58
|
|
59
|
-
[参考サイト](https://docs.microsoft.com/ja-jp/windows/win32/opengl/glnormal3
|
59
|
+
[参考サイト](https://docs.microsoft.com/ja-jp/windows/win32/opengl/glnormal3f)
|
60
|
-
|
61
60
|
|
62
61
|
|
63
62
|
|
59
まとめ
test
CHANGED
File without changes
|
test
CHANGED
@@ -56,9 +56,7 @@
|
|
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
|
-
|
61
|
-
--参考サイト
|
62
60
|
|
63
61
|
|
64
62
|
|
58
まとめ
test
CHANGED
File without changes
|
test
CHANGED
@@ -56,7 +56,9 @@
|
|
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
|
+
|
61
|
+
--参考サイト
|
60
62
|
|
61
63
|
|
62
64
|
|
57
まとめ
test
CHANGED
File without changes
|
test
CHANGED
@@ -56,7 +56,7 @@
|
|
56
56
|
|
57
57
|
●頂点から正規化された法線を求めるのがうまくいかなかったので、 glNormal3fにあらかじめ用意してた法線の配列を与えました。こちらも使うにあたって自己責任でおねがいします。
|
58
58
|
|
59
|
-
|
59
|
+
https://docs.microsoft.com/ja-jp/windows/win32/opengl/glnormal3b --引用サイト
|
60
60
|
|
61
61
|
|
62
62
|
|
56
まとめ
test
CHANGED
File without changes
|
test
CHANGED
@@ -54,7 +54,7 @@
|
|
54
54
|
glEnd();の語順になってしまう。自己責任でお願いします。
|
55
55
|
|
56
56
|
|
57
|
-
●頂点から正規化された法線を求めるのがうまくいかなかったので、 glNormal3fにあらかじめ用意してた法線の配列を与えました。
|
57
|
+
●頂点から正規化された法線を求めるのがうまくいかなかったので、 glNormal3fにあらかじめ用意してた法線の配列を与えました。こちらも使うにあたって自己責任でおねがいします。
|
58
58
|
|
59
59
|
|
60
60
|
|
55
まとめ
test
CHANGED
File without changes
|
test
CHANGED
@@ -54,6 +54,8 @@
|
|
54
54
|
glEnd();の語順になってしまう。自己責任でお願いします。
|
55
55
|
|
56
56
|
|
57
|
+
●頂点から正規化された法線を求めるのがうまくいかなかったので、 glNormal3fにあらかじめ用意してた法線の配列を与えました。
|
58
|
+
|
57
59
|
|
58
60
|
|
59
61
|
|
54
まとめ
test
CHANGED
File without changes
|
test
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
まとめ
test
CHANGED
File without changes
|
test
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
まとめ
test
CHANGED
File without changes
|
test
CHANGED
@@ -42,9 +42,11 @@
|
|
42
42
|
|
43
43
|
|
44
44
|
間違えてたらすいません。責任とりません。
|
45
|
-
あと、
|
45
|
+
あと、こちらも責任取りませんが、結果がファイルの法線と同じ値となると思いましたが、なりませんでした。正規化した法線、V_X/la,V_Y/la,V_Z/laの計算途中に間違いがあるかもしれません。どこかに誤りがあるかもしれません。
|
46
|
+
|
46
|
-
|
47
|
+
(私の計算で、vnの数値をみたところ、だいたい小数点第三位までしか正しくなくて4桁目からずれているかんじになった。)
|
47
|
-
間違えてるみたいなのでソースコードは削除します。
|
48
|
+
間違えてるみたいなのでソースコードは削除します。(誤りがある場合使わないでください。)
|
49
|
+
|
48
50
|
|
49
51
|
|
50
52
|
間違いなのかわからないですけど、
|
51
まとめ
test
CHANGED
File without changes
|
test
CHANGED
@@ -43,7 +43,7 @@
|
|
43
43
|
|
44
44
|
間違えてたらすいません。責任とりません。
|
45
45
|
あと、計算結果がファイルの法線と同じ値となると思いましたが、なりませんでした。
|
46
|
-
どこかに誤りがあると思います。(vnの
|
46
|
+
どこかに誤りがあると思います。(vnの数値をみたところ、だいたい小数点第三位までしか正しくなくて4桁目がずれているかんじ。)
|
47
47
|
間違えてるみたいなのでソースコードは削除します。
|
48
48
|
|
49
49
|
|
50
まとめ
test
CHANGED
File without changes
|
test
CHANGED
@@ -43,7 +43,7 @@
|
|
43
43
|
|
44
44
|
間違えてたらすいません。責任とりません。
|
45
45
|
あと、計算結果がファイルの法線と同じ値となると思いましたが、なりませんでした。
|
46
|
-
どこかに誤りがあると思います。
|
46
|
+
どこかに誤りがあると思います。(vnのはじまりの数値をみたところ、誤差がでてるのかも)
|
47
47
|
間違えてるみたいなのでソースコードは削除します。
|
48
48
|
|
49
49
|
|
49
まとめ
test
CHANGED
File without changes
|
test
CHANGED
@@ -35,18 +35,23 @@
|
|
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どちらがただしいでしょうか
|
41
|
+
|
42
|
+
|
40
43
|
|
41
44
|
間違えてたらすいません。責任とりません。
|
45
|
+
あと、計算結果がファイルの法線と同じ値となると思いましたが、なりませんでした。
|
46
|
+
どこかに誤りがあると思います。
|
42
|
-
間違えてた
|
47
|
+
間違えてるみたいなのでソースコードは削除します。
|
43
|
-
|
48
|
+
|
44
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
|
-
|
54
|
+
|
50
55
|
|
51
56
|
|
52
57
|
|
48
文章のまとめ
test
CHANGED
File without changes
|
test
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
まとめ
test
CHANGED
File without changes
|
test
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
まとめ
test
CHANGED
File without changes
|
test
CHANGED
@@ -48,8 +48,11 @@
|
|
48
48
|
|
49
49
|
参考文献。。3Dグラフィックスのための数学 工学社
|
50
50
|
|
51
|
-
~~参考文献には、前法線と、移動後の後法線の概念があり~~glRotatef(angle,1,0,0);等でカバーできているか、それとも、数式でカバーするのか、わからない問題が新たに出てしまいました。
|
52
51
|
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
glRotatef(angle,x,y,z);で法線の数式はカバーされている。
|
53
56
|
|
54
57
|
追記.... 正規化した法線の値が-1.0~1.0の値になっていました。正規化した値は0.0~1.0かもしれないので追記します。
|
55
58
|
|
45
文章の直し
test
CHANGED
File without changes
|
test
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
文章の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -41,11 +41,10 @@
|
|
41
41
|
間違えてたらすいません。責任とりません。
|
42
42
|
間違えてたら嫌なので削除します。
|
43
43
|
追記....ソースコードの再計算中に、x座標とz座標の計算をまちがえたかもしれないが、ベクトルの計算を満たしても左回りの計算を満たさないケースを否定できないかもしれないので、ソースコードを削除します。
|
44
|
-
|
45
44
|
|
46
|
-
|
45
|
+
間違いなのかわからないですけど、
|
47
|
-
|
46
|
+
glBegin();glNormal3f(x,y,z);glVertex3f(x,y,z);glVertex3f(x,y,z);glVertex3f(x,y,z)
|
48
|
-
|
47
|
+
glEnd();の語順になってしまう。自己責任でお願いします。
|
49
48
|
|
50
49
|
参考文献。。3Dグラフィックスのための数学 工学社
|
51
50
|
|
43
文章の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,96 +1,47 @@
|
|
1
1
|
1.追記ベクトルA=(2,-1,3)のベクトルAを正規化しなさい
|
2
|
-
|
3
|
-
|
4
2
|
|
5
3
|
A^2=2^2+(-1)^2+3^2=4+1+9=14
|
6
4
|
|
7
|
-
|
8
|
-
|
9
5
|
正規化したベクトルは(2/√14,-1/√14,3/√14)になります.
|
10
|
-
|
11
|
-
|
12
6
|
|
13
7
|
2.ポリゴンの3頂点をv1=(1,0,0),v2=(0,1,0),v3=(0,0,1)として法線を正規化しなさい
|
14
8
|
|
15
|
-
|
16
|
-
|
17
9
|
ベクトルv1v3=v3-v1=(0-1,0-0,1-0)=(-1,0,1),
|
18
|
-
|
19
10
|
ベクトルv1v2=v2-v1=(0-1,1-0,0-0)=(-1,1,0)
|
20
|
-
|
21
11
|
法線は直交するので、ベクトルv1v3 x ベクトルv1v2=
|
22
|
-
|
23
12
|
|i,j,k|
|
24
|
-
|
25
13
|
|-1,0,1|
|
26
|
-
|
27
14
|
|-1,1,0|=(-1,-1,-1)
|
28
|
-
|
29
15
|
法線は正規化して(-1/√3,-1/√3,-1/√3)
|
30
|
-
|
31
|
-
|
32
|
-
|
33
16
|
|
34
17
|
|
35
18
|
3.必要な計算
|
36
19
|
|
37
20
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
21
|
→AB=→b- →a
|
42
|
-
|
43
|
-
|
44
|
-
|
45
22
|
|
46
23
|
|
47
24
|
2つのベクトル(x1,y1,z1)(x2,y2,z2)の時,
|
48
25
|
|
49
|
-
|
50
|
-
|
51
26
|
v1*v2=|i,j,k|
|
52
|
-
|
53
27
|
|x1,y1,z1|
|
54
|
-
|
55
28
|
|x2,y2,z2|=(y1z2-z1y2)i-(x1z2-z1x2)j+(x1y2-y1x2)k
|
56
29
|
|
57
|
-
|
58
|
-
|
59
30
|
A=y1z2-z1y2
|
60
|
-
|
61
31
|
B=-(x1z2-z1x2)
|
62
|
-
|
63
32
|
C=(x1y2-y1x2)
|
64
|
-
|
65
33
|
だと思う。
|
66
34
|
|
67
|
-
|
68
|
-
|
69
35
|
法線は正規化する必要があるのでn=A/ √A^2+B^2+C^2 , B/√A^2+B^2+C^2,
|
70
|
-
|
71
36
|
C/√A^2+B^2+C^2,
|
72
|
-
|
73
|
-
|
74
|
-
|
75
37
|
|
76
38
|
|
77
39
|
1と2どちらがただしいでしょうか。
|
78
40
|
|
79
|
-
|
80
|
-
|
81
41
|
間違えてたらすいません。責任とりません。
|
82
|
-
|
83
42
|
間違えてたら嫌なので削除します。
|
84
|
-
|
85
43
|
追記....ソースコードの再計算中に、x座標とz座標の計算をまちがえたかもしれないが、ベクトルの計算を満たしても左回りの計算を満たさないケースを否定できないかもしれないので、ソースコードを削除します。
|
86
|
-
|
87
44
|
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
45
|
|
95
46
|
|
96
47
|
|
@@ -98,48 +49,22 @@
|
|
98
49
|
|
99
50
|
参考文献。。3Dグラフィックスのための数学 工学社
|
100
51
|
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
52
|
+
参考文献には、前法線と、移動後の後法線の概念がありました。glRotatef(angle,1,0,0);等でカバーできているか、それとも、数式でカバーするのか、わからない問題が新たに出てしまいました。
|
110
|
-
|
111
|
-
|
112
|
-
|
113
53
|
|
114
54
|
|
115
55
|
追記.... 正規化した法線の値が-1.0~1.0の値になっていました。正規化した値は0.0~1.0かもしれないので追記します。
|
116
56
|
|
117
57
|
|
118
58
|
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
59
|
https://qiita.com/yoship1639/items/75505244b6c242d50f71
|
124
60
|
|
125
|
-
|
126
|
-
|
127
61
|
dot(n, normalize(-wLightDir))は、法線と正規化させたディレクショナルライトの向きの内積を取る処理です。
|
128
|
-
|
129
62
|
wLightDirがマイナスなのは法線と逆向きの状態を直すためです。
|
130
|
-
|
131
63
|
dotの結果は、向きが近ければ近いほど1.0に近づき、向きが反対に近いほど-1.0に近づきます。
|
132
|
-
|
133
64
|
正規化されたベクトル同士の内積は必ず-1.0 ~ 1.0の間に収束されます。
|
134
|
-
|
135
65
|
1.0に近いと明るく、0.0に近いと暗くなります。
|
136
66
|
|
137
|
-
|
138
|
-
|
139
67
|
求めた内積はclampを施し、0.0 ~ 1.0にクリップします。
|
140
|
-
|
141
68
|
マイナス部分は光の量を逆に奪ってしまうので、マイナスにならない様にします。
|
142
69
|
|
143
|
-
|
144
|
-
|
145
70
|
だそうです。
|
42
文の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -112,7 +112,7 @@
|
|
112
112
|
|
113
113
|
|
114
114
|
|
115
|
-
追記.... 正規化した法線の値が-1.0~1.0の値になっていました。正規化した値は0.0~1.0かもしれないので
|
115
|
+
追記.... 正規化した法線の値が-1.0~1.0の値になっていました。正規化した値は0.0~1.0かもしれないので追記します。
|
116
116
|
|
117
117
|
|
118
118
|
|
41
文の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -116,8 +116,30 @@
|
|
116
116
|
|
117
117
|
|
118
118
|
|
119
|
-
0から1の範囲の正規化
|
120
119
|
|
121
|
-
-1から1の範囲の正規化だそうです。という文献があった。
|
122
120
|
|
121
|
+
|
122
|
+
|
123
|
+
https://qiita.com/yoship1639/items/75505244b6c242d50f71
|
124
|
+
|
125
|
+
|
126
|
+
|
127
|
+
dot(n, normalize(-wLightDir))は、法線と正規化させたディレクショナルライトの向きの内積を取る処理です。
|
128
|
+
|
129
|
+
wLightDirがマイナスなのは法線と逆向きの状態を直すためです。
|
130
|
+
|
131
|
+
dotの結果は、向きが近ければ近いほど1.0に近づき、向きが反対に近いほど-1.0に近づきます。
|
132
|
+
|
133
|
+
正規化されたベクトル同士の内積は必ず-1.0 ~ 1.0の間に収束されます。
|
134
|
+
|
135
|
+
1.0に近いと明るく、0.0に近いと暗くなります。
|
136
|
+
|
137
|
+
|
138
|
+
|
139
|
+
求めた内積はclampを施し、0.0 ~ 1.0にクリップします。
|
140
|
+
|
123
|
-
|
141
|
+
マイナス部分は光の量を逆に奪ってしまうので、マイナスにならない様にします。
|
142
|
+
|
143
|
+
|
144
|
+
|
145
|
+
だそうです。
|
40
文の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -112,4 +112,12 @@
|
|
112
112
|
|
113
113
|
|
114
114
|
|
115
|
-
追記.... 正規化した法線の値が-1.0~1.0の値になっていました。正規化した値は0.0~1.0かもしれないので
|
115
|
+
追記.... 正規化した法線の値が-1.0~1.0の値になっていました。正規化した値は0.0~1.0かもしれないのであさってたら、基本は2種類。
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
0から1の範囲の正規化
|
120
|
+
|
121
|
+
-1から1の範囲の正規化だそうです。という文献があった。
|
122
|
+
|
123
|
+
計算式が違ったのと分野が違うので間違えてるかもしれないけれど。
|
39
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -107,3 +107,9 @@
|
|
107
107
|
|
108
108
|
|
109
109
|
正規化してポリゴンを反射するつもりが、ポリゴンが反射せず黒くなってしまいました。こういう計算だと思ったのですが、正規化して反射するようにしたいです。normalを使いましたが、急いで直したため、その他にも誤り等ありましたら、申し訳ありません。責任とれません。
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
|
114
|
+
|
115
|
+
追記.... 正規化した法線の値が-1.0~1.0の値になっていました。正規化した値は0.0~1.0かもしれないのでおそらくどこか間違いました。
|
38
文の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -82,7 +82,7 @@
|
|
82
82
|
|
83
83
|
間違えてたら嫌なので削除します。
|
84
84
|
|
85
|
-
追記....ソースコードの再計算中に、ベクトルを満た
|
85
|
+
追記....ソースコードの再計算中に、x座標とz座標の計算をまちがえたかもしれないが、ベクトルの計算を満たしても左回りの計算を満たさないケースを否定できないかもしれないので、ソースコードを削除します。
|
86
86
|
|
87
87
|
|
88
88
|
|
37
文の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -82,7 +82,9 @@
|
|
82
82
|
|
83
83
|
間違えてたら嫌なので削除します。
|
84
84
|
|
85
|
-
追記....ソースコードに、ベクトルを満たすが左回りを満たさない
|
85
|
+
追記....ソースコードの再計算中に、ベクトルを満たすが左回りの計算を満たさないケースがあったのでソースコードを削除します。
|
86
|
+
|
87
|
+
|
86
88
|
|
87
89
|
|
88
90
|
|
36
文の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -82,7 +82,7 @@
|
|
82
82
|
|
83
83
|
間違えてたら嫌なので削除します。
|
84
84
|
|
85
|
-
追記....ソースコードに、ベクトル
|
85
|
+
追記....ソースコードに、ベクトルを満たすが左回りを満たさないというミスがあったので削除します。
|
86
86
|
|
87
87
|
|
88
88
|
|
35
文の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -82,6 +82,10 @@
|
|
82
82
|
|
83
83
|
間違えてたら嫌なので削除します。
|
84
84
|
|
85
|
+
追記....ソースコードに、ベクトル(ほさき-根本)を満たすが左回りを満たさないというミスがあったので削除します。
|
86
|
+
|
87
|
+
|
88
|
+
|
85
89
|
|
86
90
|
|
87
91
|
|
34
文の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -78,121 +78,11 @@
|
|
78
78
|
|
79
79
|
|
80
80
|
|
81
|
-
|
81
|
+
間違えてたらすいません。責任とりません。
|
82
82
|
|
83
|
-
```
|
84
|
-
|
85
|
-
|
83
|
+
間違えてたら嫌なので削除します。
|
86
84
|
|
87
85
|
|
88
|
-
|
89
|
-
glBegin(GL_TRIANGLES);
|
90
|
-
|
91
|
-
////修正しました。間違えました///////////
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
例:法線の計算の a[0],b[0],a[1],b[1],a[2],b[2] =f 390 //4966 389//4966 2503 //4966
|
96
|
-
|
97
|
-
の 390 389 2503の面のtriangle なので,
|
98
|
-
|
99
|
-
390番目のx,y,z 389番目のx,y,z 2503番目のx,y,z
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
float x1=v[3*a[1]-3]-v[3*a[2]-3];//389のx座標 - 2503のx座標
|
104
|
-
|
105
|
-
float y1=v[3*a[1]-2]-v[3*a[2]-2];//389のy座標 - 2503のy座標
|
106
|
-
|
107
|
-
float z1=v[3*a[1]-1]-v[3*a[2]-1];//389のz座標 - 2503のz座標
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
float x2=v[3*a[1]-3]-v[3*a[0]-3];////389のx座標 - 390のx座標 (修正)
|
112
|
-
|
113
|
-
float y2=v[3*a[1]-2]-v[3*a[0]-2];///389のy座標 - 390のy座標 (修正)
|
114
|
-
|
115
|
-
float z2=v[3*a[1]-1]-v[3*a[0]-1];////389のz座標 - 390のz座標 (修正)
|
116
|
-
|
117
|
-
その他
|
118
|
-
|
119
|
-
float x1=v[3*a[0]-3]-v[3*a[1]-3];
|
120
|
-
|
121
|
-
float y1=v[3*a[0]-2]-v[3*a[1]-2];
|
122
|
-
|
123
|
-
float z1=v[3*a[0]-1]-v[3*a[1]-1];
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
float x2=v[3*a[0]-3]-v[3*a[2]-3];
|
128
|
-
|
129
|
-
float y2=v[3*a[0]-2]-v[3*a[2]-2];
|
130
|
-
|
131
|
-
float z2=v[3*a[0]-1]-v[3*a[2]-1];
|
132
|
-
|
133
|
-
その他
|
134
|
-
|
135
|
-
float x1=v[3*a[2]-3]-v[3*a[0]-3];
|
136
|
-
|
137
|
-
float y1=v[3*a[2]-2]-v[3*a[0]-2];
|
138
|
-
|
139
|
-
float z1=v[3*a[2]-1]-v[3*a[0]-1];
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
float x2=v[3*a[2]-3]-v[3*a[1]-3];
|
144
|
-
|
145
|
-
float y2=v[3*a[2]-2]-v[3*a[1]-2];
|
146
|
-
|
147
|
-
float z2=v[3*a[2]-1]-v[3*a[1]-1];
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
図を書いたんですけど
|
152
|
-
|
153
|
-
三角形の図を書き表が左回りなので、左回りで計算してください(他サイトでは右ねじって記述)
|
154
|
-
|
155
|
-
間違えてたらすいません。責任とりません。
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
よく
|
160
|
-
|
161
|
-
ある公式らしいのでそのまま使う。
|
162
|
-
|
163
|
-
float V_X=y1*z2-z1*y2;
|
164
|
-
|
165
|
-
float V_Y=-(x1*z2-z1*x2);
|
166
|
-
|
167
|
-
float V_Z=x1*y2-y1*x2;
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
float la=sqrt(V_X*V_X+V_Y*V_Y+V_Z*V_Z);
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
glNormal3f(V_X/la,V_Y/la,V_Z/la);
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
glVertex3f(v[3*a[0]-3],v[3*a[0]-2],v[3*a[0]-1]);
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
glVertex3f(v[3*a[1]-3], v[3*a[1]-2], v[3*a[1]-1]);
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
glVertex3f(v[3*a[2]-3], v[3*a[2]-2], v[3*a[2]-1]);
|
188
|
-
|
189
|
-
glEnd();
|
190
|
-
|
191
|
-
glDisable(GL_LIGHTING);
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
```
|
196
86
|
|
197
87
|
|
198
88
|
|
33
文の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -46,7 +46,7 @@
|
|
46
46
|
|
47
47
|
2つのベクトル(x1,y1,z1)(x2,y2,z2)の時,
|
48
48
|
|
49
|
-
|
49
|
+
|
50
50
|
|
51
51
|
v1*v2=|i,j,k|
|
52
52
|
|
@@ -202,7 +202,9 @@
|
|
202
202
|
|
203
203
|
参考文献。。3Dグラフィックスのための数学 工学社
|
204
204
|
|
205
|
-
|
205
|
+
|
206
|
+
|
207
|
+
|
206
208
|
|
207
209
|
|
208
210
|
|
32
文の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -44,7 +44,7 @@
|
|
44
44
|
|
45
45
|
|
46
46
|
|
47
|
-
2つのベクトル
|
47
|
+
2つのベクトル(x1,y1,z1)(x2,y2,z2)の時,
|
48
48
|
|
49
49
|
(補足)
|
50
50
|
|
31
文の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -44,7 +44,7 @@
|
|
44
44
|
|
45
45
|
|
46
46
|
|
47
|
-
2つのベクトル
|
47
|
+
2つのベクトルが(x1,y1,z1)(x2,y2,z2)の時,
|
48
48
|
|
49
49
|
(補足)
|
50
50
|
|
30
文の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -42,6 +42,10 @@
|
|
42
42
|
|
43
43
|
|
44
44
|
|
45
|
+
|
46
|
+
|
47
|
+
2つのベクトル A=(x1,y1,z1)B=(x2,y2,z2)の時,
|
48
|
+
|
45
49
|
(補足)
|
46
50
|
|
47
51
|
v1*v2=|i,j,k|
|
29
文の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -34,23 +34,31 @@
|
|
34
34
|
|
35
35
|
3.必要な計算
|
36
36
|
|
37
|
+
|
38
|
+
|
39
|
+
|
40
|
+
|
37
|
-
|
41
|
+
→AB=→b- →a
|
42
|
+
|
43
|
+
|
44
|
+
|
38
|
-
|
45
|
+
(補足)
|
46
|
+
|
47
|
+
v1*v2=|i,j,k|
|
48
|
+
|
39
|
-
|
49
|
+
|x1,y1,z1|
|
50
|
+
|
40
|
-
|
51
|
+
|x2,y2,z2|=(y1z2-z1y2)i-(x1z2-z1x2)j+(x1y2-y1x2)k
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
A=y1z2-z1y2
|
56
|
+
|
57
|
+
B=-(x1z2-z1x2)
|
58
|
+
|
41
|
-
|
59
|
+
C=(x1y2-y1x2)
|
42
|
-
|
60
|
+
|
43
|
-
|
61
|
+
だと思う。
|
44
|
-
|
45
|
-
ベクトルv1v3=(a3-a1,b3-b1,c3-c1)
|
46
|
-
|
47
|
-
ベクトルv1v2=(a2-a1,b2-b1,c2-c1),
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
ベクトルv1v3 xベクトルv1v2= (A ,B, C)
|
54
62
|
|
55
63
|
|
56
64
|
|
@@ -60,14 +68,6 @@
|
|
60
68
|
|
61
69
|
|
62
70
|
|
63
|
-
(補足)
|
64
|
-
|
65
|
-
v1*v2=|i,j,k|
|
66
|
-
|
67
|
-
|x1,y1,z1|
|
68
|
-
|
69
|
-
|x2,y2,z2|=(y1z2-z1y2)i-(x1z2-z1x2)j+(x1y2-y1x2)k
|
70
|
-
|
71
71
|
|
72
72
|
|
73
73
|
1と2どちらがただしいでしょうか。
|
28
文の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -106,7 +106,7 @@
|
|
106
106
|
|
107
107
|
float x2=v[3*a[1]-3]-v[3*a[0]-3];////389のx座標 - 390のx座標 (修正)
|
108
108
|
|
109
|
-
float y2=v[3*a[1]-2]-v[3*a[0]-2];///389のy座標 - 390のy座標 (修正)
|
109
|
+
float y2=v[3*a[1]-2]-v[3*a[0]-2];///389のy座標 - 390のy座標 (修正)
|
110
110
|
|
111
111
|
float z2=v[3*a[1]-1]-v[3*a[0]-1];////389のz座標 - 390のz座標 (修正)
|
112
112
|
|
@@ -146,7 +146,7 @@
|
|
146
146
|
|
147
147
|
図を書いたんですけど
|
148
148
|
|
149
|
-
三角形の図を書き表が左回りなので、左回りで計算してください
|
149
|
+
三角形の図を書き表が左回りなので、左回りで計算してください(他サイトでは右ねじって記述)
|
150
150
|
|
151
151
|
間違えてたらすいません。責任とりません。
|
152
152
|
|
27
文の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -144,9 +144,11 @@
|
|
144
144
|
|
145
145
|
|
146
146
|
|
147
|
+
図を書いたんですけど
|
148
|
+
|
149
|
+
三角形の図を書き表が左回りなので、左回りで計算してください
|
150
|
+
|
147
|
-
|
151
|
+
間違えてたらすいません。責任とりません。
|
148
|
-
|
149
|
-
|
150
152
|
|
151
153
|
|
152
154
|
|
26
文の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -96,19 +96,19 @@
|
|
96
96
|
|
97
97
|
|
98
98
|
|
99
|
-
float x1=v[3*a[1]-3]-v[3*a[2]-3];//389のx座標 - 3
|
99
|
+
float x1=v[3*a[1]-3]-v[3*a[2]-3];//389のx座標 - 2503のx座標
|
100
|
-
|
100
|
+
|
101
|
-
float y1=v[3*a[1]-2]-v[3*a[2]-2];//389のy座標 - 3
|
101
|
+
float y1=v[3*a[1]-2]-v[3*a[2]-2];//389のy座標 - 2503のy座標
|
102
|
-
|
102
|
+
|
103
|
-
float z1=v[3*a[1]-1]-v[3*a[2]-1];//389のz座標 - 3
|
103
|
+
float z1=v[3*a[1]-1]-v[3*a[2]-1];//389のz座標 - 2503のz座標
|
104
|
-
|
105
|
-
|
106
|
-
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
-
float x2=v[3*a[1]-3]-v[3*a[0]-3];////
|
107
|
+
float x2=v[3*a[1]-3]-v[3*a[0]-3];////389のx座標 - 390のx座標 (修正)
|
108
|
-
|
108
|
+
|
109
|
-
float y2=v[3*a[1]-2]-v[3*a[0]-2];///
|
109
|
+
float y2=v[3*a[1]-2]-v[3*a[0]-2];///389のy座標 - 390のy座標 (修正)
|
110
|
-
|
110
|
+
|
111
|
-
float z2=v[3*a[1]-1]-v[3*a[0]-1];////
|
111
|
+
float z2=v[3*a[1]-1]-v[3*a[0]-1];////389のz座標 - 390のz座標 (修正)
|
112
112
|
|
113
113
|
その他
|
114
114
|
|
25
文の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -96,44 +96,80 @@
|
|
96
96
|
|
97
97
|
|
98
98
|
|
99
|
-
float x1=v[3*a[1]-3]-v[3*a[
|
99
|
+
float x1=v[3*a[1]-3]-v[3*a[2]-3];//389のx座標 - 390のx座標
|
100
|
-
|
100
|
+
|
101
|
-
float y1=v[3*a[1]-2]-v[3*a[
|
101
|
+
float y1=v[3*a[1]-2]-v[3*a[2]-2];//389のy座標 - 390のy座標
|
102
|
-
|
102
|
+
|
103
|
-
float z1=v[3*a[1]-1]-v[3*a[
|
103
|
+
float z1=v[3*a[1]-1]-v[3*a[2]-1];//389のz座標 - 390のz座標
|
104
|
-
|
105
|
-
|
106
|
-
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
-
float x2=v[3*a[
|
107
|
+
float x2=v[3*a[1]-3]-v[3*a[0]-3];////2503のx座標 - 390のx座標 (修正)
|
108
|
-
|
108
|
+
|
109
|
-
float y2=v[3*a[
|
109
|
+
float y2=v[3*a[1]-2]-v[3*a[0]-2];///2503のy座標 - 390のy座標 (修正)
|
110
|
-
|
110
|
+
|
111
|
-
float z2=v[3*a[
|
111
|
+
float z2=v[3*a[1]-1]-v[3*a[0]-1];////2503のz座標 - 390のz座標 (修正)
|
112
|
+
|
113
|
+
その他
|
114
|
+
|
115
|
+
float x1=v[3*a[0]-3]-v[3*a[1]-3];
|
116
|
+
|
117
|
+
float y1=v[3*a[0]-2]-v[3*a[1]-2];
|
118
|
+
|
119
|
+
float z1=v[3*a[0]-1]-v[3*a[1]-1];
|
120
|
+
|
121
|
+
|
122
|
+
|
123
|
+
float x2=v[3*a[0]-3]-v[3*a[2]-3];
|
124
|
+
|
125
|
+
float y2=v[3*a[0]-2]-v[3*a[2]-2];
|
126
|
+
|
127
|
+
float z2=v[3*a[0]-1]-v[3*a[2]-1];
|
128
|
+
|
129
|
+
その他
|
130
|
+
|
131
|
+
float x1=v[3*a[2]-3]-v[3*a[0]-3];
|
132
|
+
|
133
|
+
float y1=v[3*a[2]-2]-v[3*a[0]-2];
|
134
|
+
|
135
|
+
float z1=v[3*a[2]-1]-v[3*a[0]-1];
|
136
|
+
|
137
|
+
|
138
|
+
|
139
|
+
float x2=v[3*a[2]-3]-v[3*a[1]-3];
|
140
|
+
|
141
|
+
float y2=v[3*a[2]-2]-v[3*a[1]-2];
|
142
|
+
|
143
|
+
float z2=v[3*a[2]-1]-v[3*a[1]-1];
|
144
|
+
|
145
|
+
|
146
|
+
|
147
|
+
図を書いたんですけど間違えてたらすいません。責任とりません。
|
148
|
+
|
149
|
+
|
150
|
+
|
151
|
+
|
152
|
+
|
153
|
+
よく
|
154
|
+
|
155
|
+
ある公式らしいのでそのまま使う。
|
156
|
+
|
157
|
+
float V_X=y1*z2-z1*y2;
|
158
|
+
|
159
|
+
float V_Y=-(x1*z2-z1*x2);
|
160
|
+
|
161
|
+
float V_Z=x1*y2-y1*x2;
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
float la=sqrt(V_X*V_X+V_Y*V_Y+V_Z*V_Z);
|
166
|
+
|
167
|
+
|
168
|
+
|
169
|
+
glNormal3f(V_X/la,V_Y/la,V_Z/la);
|
112
170
|
|
113
171
|
|
114
172
|
|
115
|
-
|
116
|
-
|
117
|
-
で上記、2503と389 を入れかえるとなぜうまくいかないのでしょうか。
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
float V_X=y1*z2-z1*y2;
|
122
|
-
|
123
|
-
float V_Y=-(x1*z2-z1*x2);
|
124
|
-
|
125
|
-
float V_Z=x1*y2-y1*x2;
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
float la=sqrt(V_X*V_X+V_Y*V_Y+V_Z*V_Z);
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
glNormal3f(V_X/la,V_Y/la,V_Z/la);
|
134
|
-
|
135
|
-
|
136
|
-
|
137
173
|
glVertex3f(v[3*a[0]-3],v[3*a[0]-2],v[3*a[0]-1]);
|
138
174
|
|
139
175
|
|
24
文の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -156,10 +156,6 @@
|
|
156
156
|
|
157
157
|
|
158
158
|
|
159
|
-
間違いについて教えてください。
|
160
|
-
|
161
|
-
|
162
|
-
|
163
159
|
|
164
160
|
|
165
161
|
参考文献。。3Dグラフィックスのための数学 工学社
|
@@ -170,4 +166,4 @@
|
|
170
166
|
|
171
167
|
|
172
168
|
|
173
|
-
正規化してポリゴンを反射するつもりが、ポリゴンが反射せず黒くなってしまいました。こういう計算だと思ったのですが、正規化して反射するようにしたいです。normalを使いましたが、急いで直したため、その他にも誤り等ありましたら、申し訳ありません。
|
169
|
+
正規化してポリゴンを反射するつもりが、ポリゴンが反射せず黒くなってしまいました。こういう計算だと思ったのですが、正規化して反射するようにしたいです。normalを使いましたが、急いで直したため、その他にも誤り等ありましたら、申し訳ありません。責任とれません。
|
23
文の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -18,7 +18,7 @@
|
|
18
18
|
|
19
19
|
ベクトルv1v2=v2-v1=(0-1,1-0,0-0)=(-1,1,0)
|
20
20
|
|
21
|
-
法線は直交するので、ベクトルv1v3 x ベクトルv2
|
21
|
+
法線は直交するので、ベクトルv1v3 x ベクトルv1v2=
|
22
22
|
|
23
23
|
|i,j,k|
|
24
24
|
|
22
文の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
|
16
16
|
|
17
|
-
ベクトルv1v3=v3-v
|
17
|
+
ベクトルv1v3=v3-v1=(0-1,0-0,1-0)=(-1,0,1),
|
18
18
|
|
19
19
|
ベクトルv1v2=v2-v1=(0-1,1-0,0-0)=(-1,1,0)
|
20
20
|
|
21
まとめ
test
CHANGED
File without changes
|
test
CHANGED
@@ -88,7 +88,11 @@
|
|
88
88
|
|
89
89
|
|
90
90
|
|
91
|
-
例:法線の計算の a[0],b[0],a[1],b[1],a[2],b[2] =f 390 //4966 389//4966 2503 //4966
|
91
|
+
例:法線の計算の a[0],b[0],a[1],b[1],a[2],b[2] =f 390 //4966 389//4966 2503 //4966
|
92
|
+
|
93
|
+
の 390 389 2503の面のtriangle なので,
|
94
|
+
|
95
|
+
390番目のx,y,z 389番目のx,y,z 2503番目のx,y,z
|
92
96
|
|
93
97
|
|
94
98
|
|
20
文の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -18,7 +18,7 @@
|
|
18
18
|
|
19
19
|
ベクトルv1v2=v2-v1=(0-1,1-0,0-0)=(-1,1,0)
|
20
20
|
|
21
|
-
法線は直交するので、ベクトルv1v
|
21
|
+
法線は直交するので、ベクトルv1v3 x ベクトルv2v1=
|
22
22
|
|
23
23
|
|i,j,k|
|
24
24
|
|
@@ -86,21 +86,33 @@
|
|
86
86
|
|
87
87
|
////修正しました。間違えました///////////
|
88
88
|
|
89
|
-
float x1=v[3*a[1]-3]-v[3*a[0]-3];
|
90
89
|
|
91
|
-
float y1=v[3*a[1]-2]-v[3*a[0]-2];
|
92
90
|
|
93
|
-
|
91
|
+
例:法線の計算の 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
|
94
92
|
|
95
93
|
|
96
94
|
|
97
|
-
float x
|
95
|
+
float x1=v[3*a[1]-3]-v[3*a[0]-3];//389のx座標 - 390のx座標
|
98
96
|
|
99
|
-
float y
|
97
|
+
float y1=v[3*a[1]-2]-v[3*a[0]-2];//389のy座標 - 390のy座標
|
100
98
|
|
101
|
-
float z
|
99
|
+
float z1=v[3*a[1]-1]-v[3*a[0]-1];//389のz座標 - 390のz座標
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
float x2=v[3*a[2]-3]-v[3*a[0]-3];////2503のx座標 - 390のx座標 (修正)
|
104
|
+
|
105
|
+
float y2=v[3*a[2]-2]-v[3*a[0]-2];///2503のy座標 - 390のy座標 (修正)
|
106
|
+
|
107
|
+
float z2=v[3*a[2]-1]-v[3*a[0]-1];////2503のz座標 - 390のz座標 (修正)
|
102
108
|
|
103
109
|
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
で上記、2503と389 を入れかえるとなぜうまくいかないのでしょうか。
|
114
|
+
|
115
|
+
|
104
116
|
|
105
117
|
float V_X=y1*z2-z1*y2;
|
106
118
|
|
@@ -136,7 +148,9 @@
|
|
136
148
|
|
137
149
|
```
|
138
150
|
|
139
|
-
|
151
|
+
|
152
|
+
|
153
|
+
|
140
154
|
|
141
155
|
間違いについて教えてください。
|
142
156
|
|
19
まとめ
test
CHANGED
File without changes
|
test
CHANGED
@@ -14,19 +14,19 @@
|
|
14
14
|
|
15
15
|
|
16
16
|
|
17
|
-
ベクトルv1v
|
17
|
+
ベクトルv1v3=v3-v2=(0-1,0-0,1-0)=(-1,0,1),
|
18
18
|
|
19
|
-
ベクトルv2
|
19
|
+
ベクトルv1v2=v2-v1=(0-1,1-0,0-0)=(-1,1,0)
|
20
20
|
|
21
21
|
法線は直交するので、ベクトルv1v2 x ベクトルv2v3=
|
22
22
|
|
23
23
|
|i,j,k|
|
24
24
|
|
25
|
-
|-1,1
|
25
|
+
|-1,0,1|
|
26
26
|
|
27
|
-
|
|
27
|
+
|-1,1,0|=(-1,-1,-1)
|
28
28
|
|
29
|
-
法線は正規化して(1/√3,1/√3,1/√3)
|
29
|
+
法線は正規化して(-1/√3,-1/√3,-1/√3)
|
30
30
|
|
31
31
|
|
32
32
|
|
@@ -42,13 +42,15 @@
|
|
42
42
|
|
43
43
|
v3=(a3,b3,c3)のとき、
|
44
44
|
|
45
|
+
ベクトルv1v3=(a3-a1,b3-b1,c3-c1)
|
46
|
+
|
45
47
|
ベクトルv1v2=(a2-a1,b2-b1,c2-c1),
|
46
|
-
|
47
|
-
ベクトルv2v3=(a3-a2,b3-b2,c3-c2)
|
48
48
|
|
49
49
|
|
50
50
|
|
51
|
+
|
52
|
+
|
51
|
-
ベクトルv1v
|
53
|
+
ベクトルv1v3 xベクトルv1v2= (A ,B, C)
|
52
54
|
|
53
55
|
|
54
56
|
|
@@ -150,4 +152,4 @@
|
|
150
152
|
|
151
153
|
|
152
154
|
|
153
|
-
正規化してポリゴンを反射するつもりが、ポリゴンが反射せず黒くなってしまいました。こういう計算だと思ったのですが、正規化して反射するようにしたいです。normalを使いましたが、その他にも誤り等ありましたら、申し訳ありません。
|
155
|
+
正規化してポリゴンを反射するつもりが、ポリゴンが反射せず黒くなってしまいました。こういう計算だと思ったのですが、正規化して反射するようにしたいです。normalを使いましたが、急いで直したため、その他にも誤り等ありましたら、申し訳ありません。
|
18
文の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -82,7 +82,7 @@
|
|
82
82
|
|
83
83
|
glBegin(GL_TRIANGLES);
|
84
84
|
|
85
|
-
////修正しま
|
85
|
+
////修正しました。間違えました///////////
|
86
86
|
|
87
87
|
float x1=v[3*a[1]-3]-v[3*a[0]-3];
|
88
88
|
|
@@ -92,11 +92,11 @@
|
|
92
92
|
|
93
93
|
|
94
94
|
|
95
|
-
float x2=v[3*a[2]-3]-v[3*a[
|
95
|
+
float x2=v[3*a[2]-3]-v[3*a[0]-3];////修正
|
96
96
|
|
97
|
-
float y2=v[3*a[2]-2]-v[3*a[
|
97
|
+
float y2=v[3*a[2]-2]-v[3*a[0]-2];///修正
|
98
98
|
|
99
|
-
float z2=v[3*a[2]-1]-v[3*a[
|
99
|
+
float z2=v[3*a[2]-1]-v[3*a[0]-1];////修正
|
100
100
|
|
101
101
|
|
102
102
|
|
17
文の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -82,21 +82,21 @@
|
|
82
82
|
|
83
83
|
glBegin(GL_TRIANGLES);
|
84
84
|
|
85
|
+
////修正します。///////////
|
85
86
|
|
87
|
+
float x1=v[3*a[1]-3]-v[3*a[0]-3];
|
86
88
|
|
87
|
-
float
|
89
|
+
float y1=v[3*a[1]-2]-v[3*a[0]-2];
|
88
90
|
|
89
|
-
float y1=NORMAL[3*b[1]-2]-NORMAL[3*b[0]-2];
|
90
|
-
|
91
|
-
float z1=
|
91
|
+
float z1=v[3*a[1]-1]-v[3*a[0]-1];
|
92
92
|
|
93
93
|
|
94
94
|
|
95
|
-
float x2=
|
95
|
+
float x2=v[3*a[2]-3]-v[3*a[1]-3];
|
96
96
|
|
97
|
-
float y2=
|
97
|
+
float y2=v[3*a[2]-2]-v[3*a[1]-2];
|
98
98
|
|
99
|
-
float z2=
|
99
|
+
float z2=v[3*a[2]-1]-v[3*a[1]-1];
|
100
100
|
|
101
101
|
|
102
102
|
|
16
文の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -29,6 +29,46 @@
|
|
29
29
|
法線は正規化して(1/√3,1/√3,1/√3)
|
30
30
|
|
31
31
|
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
3.必要な計算
|
36
|
+
|
37
|
+
ポリゴンの3頂点が
|
38
|
+
|
39
|
+
v1=(a1,b1,c1),
|
40
|
+
|
41
|
+
v2=(a2,b2,c2),
|
42
|
+
|
43
|
+
v3=(a3,b3,c3)のとき、
|
44
|
+
|
45
|
+
ベクトルv1v2=(a2-a1,b2-b1,c2-c1),
|
46
|
+
|
47
|
+
ベクトルv2v3=(a3-a2,b3-b2,c3-c2)
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
ベクトルv1v2 xベクトルv2v3= (A ,B, C)
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
法線は正規化する必要があるのでn=A/ √A^2+B^2+C^2 , B/√A^2+B^2+C^2,
|
56
|
+
|
57
|
+
C/√A^2+B^2+C^2,
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
(補足)
|
62
|
+
|
63
|
+
v1*v2=|i,j,k|
|
64
|
+
|
65
|
+
|x1,y1,z1|
|
66
|
+
|
67
|
+
|x2,y2,z2|=(y1z2-z1y2)i-(x1z2-z1x2)j+(x1y2-y1x2)k
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
1と2どちらがただしいでしょうか。
|
32
72
|
|
33
73
|
|
34
74
|
|
@@ -102,56 +142,6 @@
|
|
102
142
|
|
103
143
|
|
104
144
|
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
3.必要な計算
|
110
|
-
|
111
|
-
ポリゴンの3頂点が
|
112
|
-
|
113
|
-
v1=(a1,b1,c1),
|
114
|
-
|
115
|
-
v2=(a2,b2,c2),
|
116
|
-
|
117
|
-
v3=(a3,b3,c3)のとき、
|
118
|
-
|
119
|
-
ベクトルv1v2=(a2-a1,b2-b1,c2-c1),
|
120
|
-
|
121
|
-
ベクトルv2v3=(a3-a2,b3-b2,c3-c2)
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
ベクトルv1v2 xベクトルv2v3= (A ,B, C)
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
法線は正規化する必要があるのでn=A/ √A^2+B^2+C^2 , B/√A^2+B^2+C^2,
|
130
|
-
|
131
|
-
C/√A^2+B^2+C^2,
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
(補足)
|
136
|
-
|
137
|
-
v1*v2=|i,j,k|
|
138
|
-
|
139
|
-
|x1,y1,z1|
|
140
|
-
|
141
|
-
|x2,y2,z2|=(y1z2-z1y2)i-(x1z2-z1x2)j+(x1y2-y1x2)k
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
1と2どちらがただしいでしょうか。
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
145
|
参考文献。。3Dグラフィックスのための数学 工学社
|
156
146
|
|
157
147
|
ITtextコンピュータグラフィックス ohrmusha(補足のみ)
|
@@ -160,82 +150,4 @@
|
|
160
150
|
|
161
151
|
|
162
152
|
|
163
|
-
```追記1の方法
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
glEnable(GL_LIGHTNING);
|
168
|
-
|
169
|
-
glBegin(GL_TRIANGLES);
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
float la=sqrt(NORMAL[3*b[0]-3]*NORMAL[3*b[0]-3]+NORMAL[3*b[0]-2]*NORMAL[3*b[0]-2]+
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
NORMAL[3*b[0]-1]*NORMAL[3*b[0]-1]);
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
glNormal3f((NORMAL[3*b[0]-3])/la,(NORMAL[3*b[0]-2])/la,(NORMAL[3*b[0]-1])/la);
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
glVertex3f(v[3*a[0]-3],v[3*a[0]-2],v[3*a[0]-1]);
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
float lb=sqrt(NORMAL[3*b[1]-3]*NORMAL[3*b[1]-3]+NORMAL[3*b[1]-2]*NORMAL[3*b[1]-2]+
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
NORMAL[3*b[1]-1]*NORMAL[3*b[1]-1]);
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
glNormal3f((NORMAL[3*b[1]-3])/lb,(NORMAL[3*b[1]-2])/lb,(NORMAL[3*b[1]-1])/lb);
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
glVertex3f(v[3*a[1]-3], v[3*a[1]-2], v[3*a[1]-1]);
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
float lc=sqrt(NORMAL[3*b[2]-3]*NORMAL[3*b[2]-3]+NORMAL[3*b[2]-2]*NORMAL[3*b[2]-2]+
|
216
|
-
|
217
|
-
NORMAL[3*b[2]-1]*NORMAL[3*b[2]-1]);
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
glNormal3f((NORMAL[3*b[2]-3])/lc,(NORMAL[3*b[2]-2])/lc,(NORMAL[3*b[2]-1])/lc);
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
glVertex3f(v[3*a[2]-3], v[3*a[2]-2], v[3*a[2]-1]);
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
glEnd();
|
234
|
-
|
235
|
-
glDisable(GL_LIGHTNING);
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
```
|
240
|
-
|
241
153
|
正規化してポリゴンを反射するつもりが、ポリゴンが反射せず黒くなってしまいました。こういう計算だと思ったのですが、正規化して反射するようにしたいです。normalを使いましたが、その他にも誤り等ありましたら、申し訳ありません。
|
15
文の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -32,7 +32,7 @@
|
|
32
32
|
|
33
33
|
|
34
34
|
|
35
|
-
追記
|
35
|
+
追記2の方法
|
36
36
|
|
37
37
|
```
|
38
38
|
|
@@ -160,7 +160,7 @@
|
|
160
160
|
|
161
161
|
|
162
162
|
|
163
|
-
```
|
163
|
+
```追記1の方法
|
164
164
|
|
165
165
|
|
166
166
|
|
14
文の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -30,6 +30,82 @@
|
|
30
30
|
|
31
31
|
|
32
32
|
|
33
|
+
|
34
|
+
|
35
|
+
追記
|
36
|
+
|
37
|
+
```
|
38
|
+
|
39
|
+
glEnable(GL_LIGHTING);
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
glBegin(GL_TRIANGLES);
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
float x1=NORMAL[3*b[1]-3]-NORMAL[3*b[0]-3];
|
48
|
+
|
49
|
+
float y1=NORMAL[3*b[1]-2]-NORMAL[3*b[0]-2];
|
50
|
+
|
51
|
+
float z1=NORMAL[3*b[1]-1]-NORMAL[3*b[0]-1];
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
float x2=NORMAL[3*b[2]-3]-NORMAL[3*b[1]-3];
|
56
|
+
|
57
|
+
float y2=NORMAL[3*b[2]-2]-NORMAL[3*b[1]-2];
|
58
|
+
|
59
|
+
float z2=NORMAL[3*b[2]-1]-NORMAL[3*b[1]-1];
|
60
|
+
|
61
|
+
|
62
|
+
|
63
|
+
float V_X=y1*z2-z1*y2;
|
64
|
+
|
65
|
+
float V_Y=-(x1*z2-z1*x2);
|
66
|
+
|
67
|
+
float V_Z=x1*y2-y1*x2;
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
float la=sqrt(V_X*V_X+V_Y*V_Y+V_Z*V_Z);
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
glNormal3f(V_X/la,V_Y/la,V_Z/la);
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
glVertex3f(v[3*a[0]-3],v[3*a[0]-2],v[3*a[0]-1]);
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
glVertex3f(v[3*a[1]-3], v[3*a[1]-2], v[3*a[1]-1]);
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
glVertex3f(v[3*a[2]-3], v[3*a[2]-2], v[3*a[2]-1]);
|
88
|
+
|
89
|
+
glEnd();
|
90
|
+
|
91
|
+
glDisable(GL_LIGHTING);
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
```
|
96
|
+
|
97
|
+
形にしたんですけど、またポリゴンが黒くなってしまいました。
|
98
|
+
|
99
|
+
間違いについて教えてください。
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
|
108
|
+
|
33
109
|
3.必要な計算
|
34
110
|
|
35
111
|
ポリゴンの3頂点が
|
13
文の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -70,7 +70,7 @@
|
|
70
70
|
|
71
71
|
|
72
72
|
|
73
|
-
|
73
|
+
|
74
74
|
|
75
75
|
|
76
76
|
|
12
文の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -70,7 +70,9 @@
|
|
70
70
|
|
71
71
|
|
72
72
|
|
73
|
-
私は前者の計算式で計算してしまいました。
|
73
|
+
私は前者の計算式で計算してしまいました。間違えてるような。
|
74
|
+
|
75
|
+
|
74
76
|
|
75
77
|
|
76
78
|
|
11
文の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -56,6 +56,8 @@
|
|
56
56
|
|
57
57
|
|
58
58
|
|
59
|
+
(補足)
|
60
|
+
|
59
61
|
v1*v2=|i,j,k|
|
60
62
|
|
61
63
|
|x1,y1,z1|
|
@@ -73,6 +75,8 @@
|
|
73
75
|
|
74
76
|
|
75
77
|
参考文献。。3Dグラフィックスのための数学 工学社
|
78
|
+
|
79
|
+
ITtextコンピュータグラフィックス ohrmusha(補足のみ)
|
76
80
|
|
77
81
|
|
78
82
|
|
10
文の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -69,6 +69,10 @@
|
|
69
69
|
|
70
70
|
|
71
71
|
私は前者の計算式で計算してしまいました。
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
参考文献。。3Dグラフィックスのための数学 工学社
|
72
76
|
|
73
77
|
|
74
78
|
|
9
まとめ
test
CHANGED
File without changes
|
test
CHANGED
@@ -68,7 +68,7 @@
|
|
68
68
|
|
69
69
|
|
70
70
|
|
71
|
-
私は前者の計算式で計算してしまいました。
|
71
|
+
私は前者の計算式で計算してしまいました。
|
72
72
|
|
73
73
|
|
74
74
|
|
8
文の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,3 +1,79 @@
|
|
1
|
+
1.追記ベクトルA=(2,-1,3)のベクトルAを正規化しなさい
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
A^2=2^2+(-1)^2+3^2=4+1+9=14
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
正規化したベクトルは(2/√14,-1/√14,3/√14)になります.
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
2.ポリゴンの3頂点をv1=(1,0,0),v2=(0,1,0),v3=(0,0,1)として法線を正規化しなさい
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
ベクトルv1v2=v2-v1=(0-1,1-0,0-0)=(-1,1,0),
|
18
|
+
|
19
|
+
ベクトルv2v3=v3-v2=(0-0,0-1,1-0)=(0,-1,1)
|
20
|
+
|
21
|
+
法線は直交するので、ベクトルv1v2 x ベクトルv2v3=
|
22
|
+
|
23
|
+
|i,j,k|
|
24
|
+
|
25
|
+
|-1,1,0|
|
26
|
+
|
27
|
+
|0,-1,1|=(1,1,1)
|
28
|
+
|
29
|
+
法線は正規化して(1/√3,1/√3,1/√3)
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
3.必要な計算
|
34
|
+
|
35
|
+
ポリゴンの3頂点が
|
36
|
+
|
37
|
+
v1=(a1,b1,c1),
|
38
|
+
|
39
|
+
v2=(a2,b2,c2),
|
40
|
+
|
41
|
+
v3=(a3,b3,c3)のとき、
|
42
|
+
|
43
|
+
ベクトルv1v2=(a2-a1,b2-b1,c2-c1),
|
44
|
+
|
45
|
+
ベクトルv2v3=(a3-a2,b3-b2,c3-c2)
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
ベクトルv1v2 xベクトルv2v3= (A ,B, C)
|
50
|
+
|
51
|
+
|
52
|
+
|
53
|
+
法線は正規化する必要があるのでn=A/ √A^2+B^2+C^2 , B/√A^2+B^2+C^2,
|
54
|
+
|
55
|
+
C/√A^2+B^2+C^2,
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
v1*v2=|i,j,k|
|
60
|
+
|
61
|
+
|x1,y1,z1|
|
62
|
+
|
63
|
+
|x2,y2,z2|=(y1z2-z1y2)i-(x1z2-z1x2)j+(x1y2-y1x2)k
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
1と2どちらがただしいでしょうか。
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
私は前者の計算式で計算してしまいました。おそらく間違い
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
|
76
|
+
|
1
77
|
```正規化
|
2
78
|
|
3
79
|
|
7
タイトルと文章の変更
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
正規化でポリゴンを反射させたい
|
1
|
+
正規化でポリゴンを反射させたいのに黒く映ってしまう
|
test
CHANGED
File without changes
|
6
タイトルと文章の変更
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
正規化でポリゴンを
|
1
|
+
正規化でポリゴンを反射させたい
|
test
CHANGED
File without changes
|
5
文の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
|
5
|
+
glEnable(GL_LIGHTNING);
|
6
6
|
|
7
7
|
glBegin(GL_TRIANGLES);
|
8
8
|
|
@@ -70,10 +70,10 @@
|
|
70
70
|
|
71
71
|
glEnd();
|
72
72
|
|
73
|
-
|
73
|
+
glDisable(GL_LIGHTNING);
|
74
74
|
|
75
75
|
|
76
76
|
|
77
77
|
```
|
78
78
|
|
79
|
-
正規化し
|
79
|
+
正規化してポリゴンを反射するつもりが、ポリゴンが反射せず黒くなってしまいました。こういう計算だと思ったのですが、正規化して反射するようにしたいです。normalを使いましたが、その他にも誤り等ありましたら、申し訳ありません。
|
4
文の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -76,4 +76,4 @@
|
|
76
76
|
|
77
77
|
```
|
78
78
|
|
79
|
-
正規化したつもりが、画面にポリゴンが映らなくなってしまいました。こういう計算だと思ったのですが、正規化して画面にうつるようにしたいです。
|
79
|
+
正規化したつもりが、画面にポリゴンが映らなくなってしまいました。こういう計算だと思ったのですが、正規化して画面にうつるようにしたいです。normalを使いましたが、誤り等ありましたら、申し訳ありません。
|
3
タイトルの変更
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
正規化でポリゴンを画面に映したい
|
test
CHANGED
File without changes
|
2
誤字
test
CHANGED
File without changes
|
test
CHANGED
@@ -24,7 +24,7 @@
|
|
24
24
|
|
25
25
|
|
26
26
|
|
27
|
-
glVertex3f(v[3*a[0]-3],v[3*a[0]-2],v[3*a[0]-1]);
|
27
|
+
glVertex3f(v[3*a[0]-3],v[3*a[0]-2],v[3*a[0]-1]);
|
28
28
|
|
29
29
|
|
30
30
|
|
1
タイトルの変更
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ベクトルの正規化でポリゴンを画面に
|
1
|
+
ベクトルの正規化でポリゴンを画面に映したい
|
test
CHANGED
File without changes
|