gpt4 book ai didi

3d - 如何在 JavaFX 8 中创建自定义 3d 模型?

转载 作者:行者123 更新时间:2023-12-03 18:10:33 25 4
gpt4 key购买 nike

我尝试使用官方教程在 JavaFX 应用程序中制作飞机,并具有以下代码:

Image diifuseMap = new Image(getClass().getResource("t.jpg").toExternalForm());
TriangleMesh planeMesh = new TriangleMesh();
float[] points = {
-5, 5, 0,
-5, -5, 0,
5, 5, 0,
5, -5, 0
};
float[] texCoords = {
0, 0,
0, 1,
1, 0,
1, 1
};
int[] faces = {
0, 0, 1, 1, 2, 2,
2, 2, 3, 3, 1, 1
};
planeMesh.getPoints().addAll(points);
planeMesh.getTexCoords().addAll(texCoords);
planeMesh.getFaces().addAll(faces);
MeshView meshView = new MeshView(planeMesh);
meshView.setMaterial(new PhongMaterial(Color.BLACK, diifuseMap, null, null, null));
Group3D plane = new Group3D(new MeshView(planeMesh));

但遗憾的是,现场什么也没有出现。谁能解释一下如何在 JavaFX 中创建我自己的 3d 模型?是否可以在没有纹理的情况下创建它们(我想要线框模型)?

最佳答案

第 1 步:列出要点

Step 1

cube.getPoints().addAll(
0, 0, 100, //P0
100, 0, 100, //P1
0, 100, 100, //P2
100, 100, 100, //P3
0, 0, 0, //P4
100, 0, 0, //P5
0, 100, 0, //P6
100, 100, 0 //P7
);

第二步:列出纹理点

Step 2
cube.getTexCoords().addAll(
0.25f, 0, //T0
0.5f, 0, //T1
0, 0.25f, //T2
0.25f, 0.25f, //T3
0.5f, 0.25f, //T4
0.75f, 0.25f, //T5
1, 0.25f, //T6
0, 0.5f, //T7
0.25f, 0.5f, //T8
0.5f, 0.5f, //T9
0.75f, 0.5f, //T10
1, 0.5f, //T11
0.25f, 0.75f, //T12
0.5f, 0.75f //T13
);

第 3 步:列出面(逆时针混合 3D 点和纹理点(或右手法则))
cube.getFaces().addAll(
5,1,4,0,0,3 //P5,T1 ,P4,T0 ,P0,T3
,5,1,0,3,1,4 //P5,T1 ,P0,T3 ,P1,T4
,0,3,4,2,6,7 //P0,T3 ,P4,T2 ,P6,T7
,0,3,6,7,2,8 //P0,T3 ,P6,T7 ,P2,T8
,1,4,0,3,2,8 //P1,T4 ,P0,T3 ,P2,T8
,1,4,2,8,3,9 //P1,T4 ,P2,T8 ,P3,T9
,5,5,1,4,3,9 //P5,T5 ,P1,T4 ,P3,T9
,5,5,3,9,7,10 //P5,T5 ,P3,T9 ,P7,T10
,4,6,5,5,7,10 //P4,T6 ,P5,T5 ,P7,T10
,4,6,7,10,6,11 //P4,T6 ,P7,T10 ,P6,T11
,3,9,2,8,6,12 //P3,T9 ,P2,T8 ,P6,T12
,3,9,6,12,7,13 //P3,T9 ,P6,T12 ,P7,T13
);

关于3d - 如何在 JavaFX 8 中创建自定义 3d 模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19459012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com