我創建了一小段代碼,在我的SWT應用程序中繪製一個3D立方體,允許旋轉它。如何在Java 3D API中將不同的圖像設置爲3D立方體的面/邊?
現在,我想更改立方體的每個面/一側並在其上繪製不同的圖像,但我無法找到如何去做(或者至少,如果可能的話,以一種簡單的方式)。
我能夠將多維數據集的完整紋理更改爲圖像,但它會更改所有面,並且我想爲每個面設置不同的圖像。這可能嗎?任何代碼示例?
謝謝
我創建了一小段代碼,在我的SWT應用程序中繪製一個3D立方體,允許旋轉它。如何在Java 3D API中將不同的圖像設置爲3D立方體的面/邊?
現在,我想更改立方體的每個面/一側並在其上繪製不同的圖像,但我無法找到如何去做(或者至少,如果可能的話,以一種簡單的方式)。
我能夠將多維數據集的完整紋理更改爲圖像,但它會更改所有面,並且我想爲每個面設置不同的圖像。這可能嗎?任何代碼示例?
謝謝
好吧,基於以前的答案和一些其他論壇我到下面的代碼,允許不同的紋理設置爲立方體的每個面:
基本上允許這樣做行是下面一個:
((Shape3D) textureCube.getChild(POSITION)).setAppearance(APPEARANCE);
考慮到:
textureCube:
Box textureCube = new Box(0.4f, 0.4f, 0.4f, Box.GENERATE_TEXTURE_COORDS,
defaultAppearance);
(defaultAppearance僅僅是一個基本的外觀對象:外觀defaultAppearance =新外觀();)
位置由下式給出,作爲vembutech指出,TextureCubeMap類和它們的每個面的值:POSITIVE_X,POSITIVE_Y,POSITIVE_Z, NEGATIVE_X,NEGATIVE_Y,NEGATIVE_Z。
而外觀對象只是一個外觀對象。我用這種方法創建了我的外觀對象:
private Appearance getAppearance(String f) throws Exception {
Appearance app = new Appearance();
URL texImage = new java.net.URL("file:" + f);
Texture tex = new TextureLoader(texImage, this).getTexture();
app.setTexture(tex);
TextureAttributes texAttr = new TextureAttributes();
texAttr.setTextureMode(TextureAttributes.MODULATE);
app.setTextureAttributes(texAttr);
return app;
}
此方法創建基於輸入文件(f)的外觀。
乾杯