teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

77

書式の改善

2024/01/02 03:55

投稿

txty
txty

スコア304

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

書式の改善

2024/01/02 03:52

投稿

txty
txty

スコア304

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

まとめ

2022/05/17 23:12

投稿

txty
txty

スコア304

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

まとめ

2022/05/17 23:09

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -42,7 +42,7 @@
42
42
 
43
43
 
44
44
  間違えてたらすいません。責任とりません。
45
- あと、こちらも責任取りませんが、結果がファイルの法線と同じ値となると思いましたが、なりませんでした。正規化した法線、V_X/la,V_Y/la,V_Z/laの計算途中に間違いあるかもしれません。どこかに誤りがあるかもしれません。
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

まとめ

2022/05/17 07:26

投稿

txty
txty

スコア304

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

まとめ

2022/05/16 09:33

投稿

txty
txty

スコア304

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

まとめ

2022/05/16 03:46

投稿

txty
txty

スコア304

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

まとめ

2022/05/16 03:40

投稿

txty
txty

スコア304

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

まとめ

2022/05/16 03:38

投稿

txty
txty

スコア304

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

まとめ

2022/05/16 03:32

投稿

txty
txty

スコア304

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
- 間違えてる可能性があるので、それ以上合っているかはやめておく、頭から直に読みこんでいけば、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
- ●の方法を推奨
63
+ ●の方法を推奨
63
64
 
64
65
  ●頂点から正規化された法線を求めるのがうまくいかなかったので、 glNormal3fにあらかじめ用意してた法線の配列を与えました。こちらも使うにあたって自己責任でおねがいします。
65
66
 

67

まとめ

2022/05/16 03:30

投稿

txty
txty

スコア304

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

まとめ

2022/05/15 21:15

投稿

txty
txty

スコア304

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

まとめ

2022/05/15 19:52

投稿

txty
txty

スコア304

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
- 法線が1のとき、モデルが法線(x//1,x//1,x//1)と1、すべて一致したのであってたのかもれないた
58
+ モデルがf頂点(21217//x,21216//x,20400//x)etc頂点の外積でしたのでしいのは頂点の値でし
59
+ 間違えてる可能性があるので、それ以上合っているかはやめておく
60
60
  ●の方法を推奨。
61
61
 
62
62
  ●頂点から正規化された法線を求めるのがうまくいかなかったので、 glNormal3fにあらかじめ用意してた法線の配列を与えました。こちらも使うにあたって自己責任でおねがいします。

64

まとめ

2022/05/15 10:40

投稿

txty
txty

スコア304

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
-  法線が1のとき、モデルがfの法線(x//1,x//1,x//1)と1で、すべて一致したのであってたのかもしれないため
59
+ 法線が1のとき、モデルがfの法線(x//1,x//1,x//1)と1で、すべて一致したのであってたのかもしれないため
60
60
  ●の方法を推奨。
61
61
 
62
62
  ●頂点から正規化された法線を求めるのがうまくいかなかったので、 glNormal3fにあらかじめ用意してた法線の配列を与えました。こちらも使うにあたって自己責任でおねがいします。

63

まとめ

2022/05/15 10:00

投稿

txty
txty

スコア304

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

まとめ

2022/05/14 08:54

投稿

txty
txty

スコア304

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

まとめ

2022/05/14 00:26

投稿

txty
txty

スコア304

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

まとめ

2022/05/13 12:29

投稿

txty
txty

スコア304

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/glnormal3b)
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

まとめ

2022/05/13 12:24

投稿

txty
txty

スコア304

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

まとめ

2022/05/13 12:20

投稿

txty
txty

スコア304

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

まとめ

2022/05/13 12:17

投稿

txty
txty

スコア304

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

まとめ

2022/05/13 10:57

投稿

txty
txty

スコア304

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

まとめ

2022/05/13 10:51

投稿

txty
txty

スコア304

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

まとめ

2022/05/09 03:52

投稿

txty
txty

スコア304

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

まとめ

2022/05/09 03:50

投稿

txty
txty

スコア304

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

まとめ

2022/05/09 03:31

投稿

txty
txty

スコア304

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

まとめ

2022/05/09 03:14

投稿

txty
txty

スコア304

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

まとめ

2022/05/02 11:17

投稿

txty
txty

スコア304

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

まとめ

2022/05/02 08:43

投稿

txty
txty

スコア304

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

文章のまとめ

2022/04/22 02:52

投稿

txty
txty

スコア304

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

まとめ

2022/04/22 02:34

投稿

txty
txty

スコア304

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

まとめ

2022/04/22 02:33

投稿

txty
txty

スコア304

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

文章の直し

2022/04/22 02:26

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -48,7 +48,7 @@
48
48
 
49
49
  参考文献。。3Dグラフィックスのための数学 工学社
50
50
 
51
- 参考文献には、前法線と、移動後の後法線の概念がありました。glRotatef(angle,1,0,0);等でカバーできているか、それとも、数式でカバーするのか、わからない問題が新たに出てしまいました。
51
+ ~~参考文献には、前法線と、移動後の後法線の概念があり~~glRotatef(angle,1,0,0);等でカバーできているか、それとも、数式でカバーするのか、わからない問題が新たに出てしまいました。
52
52
 
53
53
 
54
54
  追記.... 正規化した法線の値が-1.0~1.0の値になっていました。正規化した値は0.0~1.0かもしれないので追記します。

44

文章の変更

2022/04/03 08:45

投稿

txty
txty

スコア304

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

文章の追加

2022/04/03 08:10

投稿

txty
txty

スコア304

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
- 正規化してポリゴンを反射するつもり、ポリゴンが反射せず黒くなってしまいました。こういう計算だと思ったのですが、正規化して反射するようにしいです。normalを使いまたが、急いでたため、その他にも誤り等ありしたら、申し訳ありません責任とれません。
56
-
57
-
58
- 追記.... 正規化した法線の値が-1.0~1.0の値になっていました。正規化した値は0.0~1.0かもしれないので追記します。
59
-
60
-
61
-
62
- https://qiita.com/yoship1639/items/75505244b6c242d50f71
63
-
64
- dot(n, normalize(-wLightDir))は、法線と正規化さディレショナルライトの向きの内積を取る処理です。
65
- wLightDirがマイナスなのは法線逆向きの状態を直ためです
66
- dotの結果は、向きが近ければ近いほど1.0に近づき、向きが反対に近いほど-1.0に近づきます。
67
- 正規化されベクトル同士の内積は必ず-1.0 ~ 1.0の間収束されます。
68
- 1.0近いと明るく0.0近いと暗くます。
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

文の変更

2021/12/28 10:23

投稿

txty
txty

スコア304

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かもしれないのであさってたら、基本は2種類
58
+ 追記.... 正規化した法線の値が-1.0~1.0の値になっていました。正規化した値は0.0~1.0かもしれないので追記します
59
59
 
60
60
 
61
61
 

41

文の変更

2021/12/28 10:23

投稿

txty
txty

スコア304

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
- 0から1範囲正規化
65
+ wLightDirがマイナスなは法線と逆向き状態を直すためです。
66
+ dotの結果は、向きが近ければ近いほど1.0に近づき、向きが反対に近いほど-1.0に近づきます。
67
+ 正規化されたベクトル同士の内積は必ず-1.0 ~ 1.0の間に収束されます。
61
- -1から1の範囲の正規化だそうです。という文献があった
68
+ 1.0に近い明るく、0.0に近と暗くなります
69
+
70
+ 求めた内積はclampを施し、0.0 ~ 1.0にクリップします。
62
- 計算式が違ったのと野が違うで間違えるかもないけれど
71
+ マイナス部は光量を逆に奪ってしまうので、マイナスにらな様にします
72
+
73
+ だそうです。

40

文の変更

2021/12/28 10:21

投稿

txty
txty

スコア304

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

追記

2021/12/16 11:19

投稿

txty
txty

スコア304

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

文の変更

2021/12/16 09:30

投稿

txty
txty

スコア304

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

文の変更

2021/11/13 18:32

投稿

txty
txty

スコア304

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

文の変更

2021/11/13 11:36

投稿

txty
txty

スコア304

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

文の変更

2021/11/13 10:13

投稿

txty
txty

スコア304

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

文の変更

2021/11/13 10:11

投稿

txty
txty

スコア304

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

文の変更

2021/11/09 08:16

投稿

txty
txty

スコア304

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

文の変更

2021/11/08 07:41

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -21,7 +21,7 @@
21
21
  →AB=→b- →a
22
22
 
23
23
 
24
- 2つのベクトル(x1,y1,z1)(x2,y2,z2)の時,
24
+ 2つのベクトル(x1,y1,z1)(x2,y2,z2)の時,
25
25
  (補足)
26
26
  v1*v2=|i,j,k|
27
27
  |x1,y1,z1|

31

文の変更

2021/11/08 07:14

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -21,7 +21,7 @@
21
21
  →AB=→b- →a
22
22
 
23
23
 
24
- 2つのベクトル A=(x1,y1,z1)B=(x2,y2,z2)の時,
24
+ 2つのベクトル(x1,y1,z1)(x2,y2,z2)の時,
25
25
  (補足)
26
26
  v1*v2=|i,j,k|
27
27
  |x1,y1,z1|

30

文の変更

2021/11/08 07:12

投稿

txty
txty

スコア304

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

文の変更

2021/11/08 07:02

投稿

txty
txty

スコア304

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
- ベクトルv1v3 xベクトルv1v2(A ,B, C)
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

文の変更

2021/11/08 06:46

投稿

txty
txty

スコア304

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

文の変更

2021/11/08 03:24

投稿

txty
txty

スコア304

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

文の変更

2021/11/08 02:54

投稿

txty
txty

スコア304

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座標 - 390の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座標 - 390の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座標 - 390の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];////2503のx座標 - 390のx座標 (修正)
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];///2503のy座標 - 390のy座標 (修正)
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];////2503のz座標 - 390のz座標 (修正)
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

文の変更

2021/11/08 02:45

投稿

txty
txty

スコア304

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[0]-3];//389のx座標 - 390のx座標
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[0]-2];//389のy座標 - 390のy座標
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[0]-1];//389のz座標 - 390のz座標
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[2]-3]-v[3*a[0]-3];////2503のx座標 - 390のx座標 (修正)
54
+ float x2=v[3*a[1]-3]-v[3*a[0]-3];////2503のx座標 - 390のx座標 (修正)
55
- float y2=v[3*a[2]-2]-v[3*a[0]-2];///2503のy座標 - 390のy座標 (修正)
55
+ float y2=v[3*a[1]-2]-v[3*a[0]-2];///2503のy座標 - 390のy座標 (修正)
56
- float z2=v[3*a[2]-1]-v[3*a[0]-1];////2503のz座標 - 390のz座標 (修正)
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
- で上記、2503と389 を入れかえるとなぜうまくいかないのでしょうか。
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

文の変更

2021/11/08 02:40

投稿

txty
txty

スコア304

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

文の変更

2021/11/08 02:21

投稿

txty
txty

スコア304

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 ベクトルv2v1
11
+ 法線は直交するので、ベクトルv1v3 x ベクトルv1v2
12
12
  |i,j,k|
13
13
  |-1,0,1|
14
14
  |-1,1,0|=(-1,-1,-1)

22

文の変更

2021/11/07 15:37

投稿

txty
txty

スコア304

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-v2=(0-1,0-0,1-0)=(-1,0,1),
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

まとめ

2021/11/07 14:58

投稿

txty
txty

スコア304

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 の 390 389 2503の面のtriangle なので,390番目のx,y,z 389番目のx,y,z 2503番目のx,y,z
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

文の変更

2021/11/07 14:43

投稿

txty
txty

スコア304

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
- 法線は直交するので、ベクトルv1v2 x ベクトルv2v3
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 x2=v[3*a[2]-3]-v[3*a[0]-3];////修正
48
+ float x1=v[3*a[1]-3]-v[3*a[0]-3];//389のx座標 - 390のx座標
50
- float y2=v[3*a[2]-2]-v[3*a[0]-2];///修正
49
+ float y1=v[3*a[1]-2]-v[3*a[0]-2];//389のy座標 - 390のy座標
51
- float z2=v[3*a[2]-1]-v[3*a[0]-1];////修正
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

まとめ

2021/11/07 14:40

投稿

txty
txty

スコア304

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
- ベクトルv1v2v2-v1=(0-1,1-0,0-0)=(-1,1,0),
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,1,0|
13
+ |-1,0,1|
14
- |0,-1,1|=(1,1,1)
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

文の変更

2021/11/07 13:02

投稿

txty
txty

スコア304

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[1]-3];
48
+ float x2=v[3*a[2]-3]-v[3*a[0]-3];////修正
49
- float y2=v[3*a[2]-2]-v[3*a[1]-2];
49
+ float y2=v[3*a[2]-2]-v[3*a[0]-2];///修正
50
- float z2=v[3*a[2]-1]-v[3*a[1]-1];
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

文の変更

2021/11/07 12:15

投稿

txty
txty

スコア304

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=NORMAL[3*b[2]-3]-NORMAL[3*b[1]-3];
48
+ float x2=v[3*a[2]-3]-v[3*a[1]-3];
49
- float y2=NORMAL[3*b[2]-2]-NORMAL[3*b[1]-2];
49
+ float y2=v[3*a[2]-2]-v[3*a[1]-2];
50
- float z2=NORMAL[3*b[2]-1]-NORMAL[3*b[1]-1];
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

文の変更

2021/10/28 13:53

投稿

txty
txty

スコア304

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

文の変更

2021/10/28 11:22

投稿

txty
txty

スコア304

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

文の変更

2021/10/28 11:08

投稿

txty
txty

スコア304

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

文の変更

2021/10/28 10:55

投稿

txty
txty

スコア304

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

文の変更

2021/10/27 13:38

投稿

txty
txty

スコア304

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

文の変更

2021/10/27 13:35

投稿

txty
txty

スコア304

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

文の変更

2021/10/27 13:16

投稿

txty
txty

スコア304

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

まとめ

2021/10/27 12:52

投稿

txty
txty

スコア304

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

文の変更

2021/10/27 12:46

投稿

txty
txty

スコア304

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

タイトルと文章の変更

2021/10/27 12:44

投稿

txty
txty

スコア304

title CHANGED
@@ -1,1 +1,1 @@
1
- 正規化でポリゴンを反射させたい
1
+ 正規化でポリゴンを反射させたいのに黒く映ってしまう
body CHANGED
File without changes

6

タイトルと文章の変更

2021/10/25 03:18

投稿

txty
txty

スコア304

title CHANGED
@@ -1,1 +1,1 @@
1
- 正規化でポリゴンを画面に映したい
1
+ 正規化でポリゴンを反射させたい
body CHANGED
File without changes

5

文の変更

2021/10/25 03:16

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,6 @@
1
1
  ```正規化
2
2
 
3
- //glEnable(GL_NORMALIZE);//自動計算を消した
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
- //glDisable(GL_NORMALIZE);//消した
37
+ glDisable(GL_LIGHTNING);
38
38
 
39
39
  ```
40
- 正規化しつもりが、画面にポリゴンが映らなくなってしまいました。こういう計算だと思ったのですが、正規化して画面にうつるようにしたいです。normalを使いましたが、誤り等ありましたら、申し訳ありません。
40
+ 正規化してポリゴンを反射するつもりが、ポリゴンが反射せず黒くなってしまいました。こういう計算だと思ったのですが、正規化して反射するようにしたいです。normalを使いましたが、その他にも誤り等ありましたら、申し訳ありません。

4

文の変更

2021/10/25 03:14

投稿

txty
txty

スコア304

title CHANGED
File without changes
body CHANGED
@@ -37,4 +37,4 @@
37
37
  //glDisable(GL_NORMALIZE);//消した
38
38
 
39
39
  ```
40
- 正規化したつもりが、画面にポリゴンが映らなくなってしまいました。こういう計算だと思ったのですが、正規化して画面にうつるようにしたいです。
40
+ 正規化したつもりが、画面にポリゴンが映らなくなってしまいました。こういう計算だと思ったのですが、正規化して画面にうつるようにしたいです。normalを使いましたが、誤り等ありましたら、申し訳ありません。

3

タイトルの変更

2021/10/24 17:04

投稿

txty
txty

スコア304

title CHANGED
@@ -1,1 +1,1 @@
1
- ベクトルの正規化でポリゴンを画面に映したい
1
+ 正規化でポリゴンを画面に映したい
body CHANGED
File without changes

2

誤字

2021/10/24 15:54

投稿

txty
txty

スコア304

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]);//f10
14
+ glVertex3f(v[3*a[0]-3],v[3*a[0]-2],v[3*a[0]-1]);
15
15
 
16
16
 
17
17
 

1

タイトルの変更

2021/10/24 15:51

投稿

txty
txty

スコア304

title CHANGED
@@ -1,1 +1,1 @@
1
- ベクトルの正規化でポリゴンを画面にしたい
1
+ ベクトルの正規化でポリゴンを画面にしたい
body CHANGED
File without changes