Pythonスクリプトで法線を出力したけどうまくいかない
4件表示
すべてのコメント一覧へ
投稿ツリー
-
Pythonスクリプトで法線を出力したけどうまくいかない (mona2009, 2009/5/2 10:13)
«
-
Re: Pythonスクリプトで法線を出力したけどうまくいかない (uimac, 2009/5/2 10:33)
- Re: Pythonスクリプトで法線を出力したけどうまくいかない (mona2009, 2009/5/2 12:31)
- Re: Pythonスクリプトで法線を出力したけどうまくいかない (mona2009, 2009/5/12 21:07)
-
Re: Pythonスクリプトで法線を出力したけどうまくいかない (uimac, 2009/5/2 10:33)
mona2009
投稿数: 7
初歩的な質問で申し訳ございません。
Pythonスクリプトで法線を出力したくて以下のようなスクリプト(某所からのパクリに法線出力を追加)を書いたのですが、
このスクリプトで新規作成時に表示されるCubeを三角形に分割して、頂点と法線を出力したら奇妙な法線が出力されます。
頂点Cube_vertDataは特に問題ないのですが、法線Cube_normalDataに関しては異常な値が出力されます。
スクリプトの使い方が間違っているのでしょうか。
Pythonスクリプトで法線を出力したくて以下のようなスクリプト(某所からのパクリに法線出力を追加)を書いたのですが、
(前略)
file = open(filename, 'wb')
scn = Blender.Scene.GetCurrent()
object = scn.objects.active
if not object or object.type != 'Mesh':
BPyMessages.Error_NoMeshActive()
return
mesh = object.getData(mesh=True)
file.write("static GLfloat " + object.name + "_vertData[] = {\n")
for face in mesh.faces:
file.write("\t" + str(face.verts[0].co.x) + ", " + str(face.verts[0].co.y) + ", " + str(face.verts[0].co.z) + ", ")
file.write(str(face.verts[1].co.x) + ", " + str(face.verts[1].co.y) + ", " + str(face.verts[1].co.z) + ", ")
file.write(str(face.verts[2].co.x) + ", " + str(face.verts[2].co.y) + ", " + str(face.verts[2].co.z) + ",\n")
file.write("};\n\n")
file.write("static GLfloat " + object.name + "_normalData[] = {\n")
for face in mesh.faces:
file.write("\t" + str(face.no.x) + ", " + str(face.no.y) + ", " + str(face.no.z) + ",\n") # 法線出力
file.write("};\n\n")
(後略)
このスクリプトで新規作成時に表示されるCubeを三角形に分割して、頂点と法線を出力したら奇妙な法線が出力されます。
static GLfloat Cube_vertData[] = {
1.0, 0.999999940395, -1.0, 1.0, -1.0, -1.0, -1.00000011921, -0.999999821186, -1.0,
1.0, 0.999999940395, -1.0, -1.00000011921, -0.999999821186, -1.0, -0.999999642372, 1.00000035763, -1.0,
1.00000047684, 0.999999463558, 1.0, 1.0, 0.999999940395, -1.0, -0.999999642372, 1.00000035763, -1.0,
1.00000047684, 0.999999463558, 1.0, -0.999999642372, 1.00000035763, -1.0, -0.999999940395, 1.0, 1.0,
-1.00000011921, -0.999999821186, -1.0, -1.00000035763, -0.999999642372, 1.0, -0.999999940395, 1.0, 1.0,
-1.00000011921, -0.999999821186, -1.0, -0.999999940395, 1.0, 1.0, -0.999999642372, 1.00000035763, -1.0,
1.0, -1.0, -1.0, 0.999999344349, -1.00000059605, 1.0, -1.00000011921, -0.999999821186, -1.0,
0.999999344349, -1.00000059605, 1.0, -1.00000035763, -0.999999642372, 1.0, -1.00000011921, -0.999999821186, -1.0,
1.0, 0.999999940395, -1.0, 1.00000047684, 0.999999463558, 1.0, 1.0, -1.0, -1.0,
1.00000047684, 0.999999463558, 1.0, 0.999999344349, -1.00000059605, 1.0, 1.0, -1.0, -1.0,
1.00000047684, 0.999999463558, 1.0, -0.999999940395, 1.0, 1.0, 0.999999344349, -1.00000059605, 1.0,
-0.999999940395, 1.0, 1.0, -1.00000035763, -0.999999642372, 1.0, 0.999999344349, -1.00000059605, 1.0,
};
static GLfloat Cube_normalData[] = {
0.0, 0.0, -1.0,
0.0, -0.0, -1.0,
2.08616299346e-07, 1.0, 2.38418536469e-07,
2.68220873068e-07, 1.0, 1.78813976959e-07,
-1.0, 2.08616299346e-07, -1.19209317972e-07,
-1.0, 2.38418579102e-07, -1.49011583517e-07,
-8.94069600577e-08, -1.0, -2.98023252299e-07,
-4.76837215047e-07, -1.0, 8.94069032142e-08,
1.0, 0.0, -2.38418579102e-07,
1.0, -5.66244125366e-07, 3.27825375734e-07,
-0.0, -0.0, 1.0,
0.0, -0.0, 1.0,
};
頂点Cube_vertDataは特に問題ないのですが、法線Cube_normalDataに関しては異常な値が出力されます。
スクリプトの使い方が間違っているのでしょうか。
投票数:5
平均点:8.00
ログイン
クイックリンク
2021/07/01版
●Blender.org
BlenderFoundation
- Blenderのダウンロード
- 公式チュート等
- 公式マニュアル(和訳)
●ニュース(英文)
BlenderNation
●Blenderコミュニティ
blenderartists.org
●Blender Q&A
- Blender Stack Exchange
●テストビルド
Buildbot(自動生成)
●開発関連
公式開発サイト
Blender開発blog
Blender Wiki
●Blender.org
BlenderFoundation
- Blenderのダウンロード
- 公式チュート等
- 公式マニュアル(和訳)
●ニュース(英文)
BlenderNation
●Blenderコミュニティ
blenderartists.org
●Blender Q&A
- Blender Stack Exchange
●テストビルド
Buildbot(自動生成)
●開発関連
公式開発サイト
Blender開発blog
Blender Wiki