9

x3domで3dテキストのベベルサイズを変更するにはどうすればよいですか? 今、私はこのようなコードを持っています

<x3d width="392px" height="392px">
<scene>
  <viewpoint position='0 0 11'></viewpoint>
  <background skyColor='0.5 0.5 0.5'></background>
  <shape>
    <appearance>
      <material ambientIntensity='0.0933' diffuseColor='0.32 0.54 0.26' shininess='0.51' specularColor='0.46 0.46 0.46'></material>
    </appearance>
    <text string='Mono bolditalic 32px' solid='false'>
        <fontstyle family="TYPEWRITER" style="BOLDITALIC" size="0.8"></fontstyle>
    </text>
  </shape>
  <transform translation='0 0 -2'>
    <shape>
        <appearance> 
            <material diffuseColor="1 0 0" specularColor="0.5 0.5 0.5"></material>
        </appearance>
        <box></box>
    </shape>
  </transform>
</scene>
</x3d>

これに利用できるサンプルコードはありますか?

4

1 に答える 1

1

X3Dom だけでテキストを面取りする明確な例はないようです。three.jsは、3D テキストのベベルを簡単に変更できる唯一の webgl ソリューションのようです。最新の質問に基づいてこれを見つけたようです。

three.js のその他の優れたリソース/例を次に示します。

また、JSFiddle の例をいくつか示します。これらは、読み取り/実験がはるかに簡単になります。


JSFiddle セットアップの取得に問題がありました。仲間のプログラマーが同様の問題を抱えていましたが、彼の助けを借りて便利な例をセットアップしました。これにより、ベベル機能を試すことができます。

ベベルの例: http://jsfiddle.net/VsWb9/674/

JavaScript

// This is where stuff in our game will happen:
var scene = new THREE.Scene();

// This is what sees the stuff:
var aspect_ratio = window.innerWidth / window.innerHeight;
var camera = new THREE.PerspectiveCamera(45, aspect_ratio, 1, 100000);
camera.position.z = 800;
camera.position.x = 350;

scene.add(camera);

// This will draw what the camera sees onto the screen:
var renderer = new THREE.WebGLRenderer();

// var renderer = new THREE.CanvasRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);

// ******** START CODING ON THE NEXT LINE ********
var shape = new THREE.TextGeometry("Game Over", 
                                   {font: 'helvetiker',
                                    bevelThickness: '3',
                                    bevelSize: '3',
                                    bevelSegments: '4',
                                    bevelEnabled: 'true'});
var wrapper = new THREE.MeshNormalMaterial({color: 0x00ff00});
var words = new THREE.Mesh(shape, wrapper);
scene.add(words);

// Now, show what the camera sees on the screen:
renderer.render(scene, camera);

追加JS

<script src="http://gamingJS.com/Three.js"></script>
<script src="http://gamingJS.com/ChromeFixes.js"></script>
<script src="http://mrdoob.github.com/three.js/examples/fonts/helvetiker_regular.typeface.js"></script>
于 2012-12-16T16:26:07.637 に答える