Skip to content

dev'geo_object'billboard

Usagi Ito edited this page Dec 22, 2017 · 1 revision

常にカメラの方を向くビルボード的な地物を設定する

3DCGでは一般にビルボードと呼ばれる事の多い、常にカメラへ正面を向ける細工のされたオブジェクト(板看板のようなオブジェクト)のように、 G4 の GeoObject についても、板であるかそうでないかによらず、常にカメラの方へ正面(あるいは任意に回転した上で特定の向き)を自動的に向くようにする設定が 4.0.0.11 で実装されました。

使い方

GeoObject.SetBillboard API でビルボード設定を true にするだけです。以下の例では、標準のテクスチャーが表示される板状の地物を羊蹄山の山頂に作り、ビルボードに設定しています。

curl -Ss -i http://127.0.0.1:50080/api/json-rpc-2.0/ -X POST --data '{ "jsonrpc": "2.0", "id": null, "method": "GeoObject.New" }'
curl -Ss -i http://127.0.0.1:50080/api/json-rpc-2.0/ -X POST --data '{ "jsonrpc": "2.0", "id": null, "method": "GeoObject.SetVertexLocal", "params": { "id": 0, "vertices": [ 0.0, 0.0, 0.0, -1000, 0, -1000, 1000, 0, -1000, -1000, 0, 1000, 1000, 0, 1000 ] } }'
curl -Ss -i http://127.0.0.1:50080/api/json-rpc-2.0/ -X POST --data '{ "jsonrpc": "2.0", "id": null, "method": "GeoObject.SetUV", "params": { "id": 0, "uvs": [ 0.5,0.5, 0,1, 1,1, 0,0, 1,0 ] } }'
curl -Ss -i http://127.0.0.1:50080/api/json-rpc-2.0/ -X POST --data '{ "jsonrpc": "2.0", "id": null, "method": "GeoObject.SetLocationByAltLatLon", "params": { "id": 0, "location": [ 1898.0, 42.826667, 140.811389 ] } }'
curl -Ss -i http://127.0.0.1:50080/api/json-rpc-2.0/ -X POST --data '{ "jsonrpc": "2.0", "id": null, "method": "GeoObject.SetIndex", "params": { "id": 0, "indices": [ 0,1,2, 0,3,1, 0,2,4, 0,4,3, 0,2,1, 0,1,3, 0,4,2, 0,3,4 ] } }'
curl -Ss -i http://127.0.0.1:50080/api/json-rpc-2.0/ -X POST --data '{ "jsonrpc": "2.0", "id": null, "method": "GeoObject.SetMaterialType", "params": { "id": 0, "material_type": "Texture" } }'
curl -Ss -i http://127.0.0.1:50080/api/json-rpc-2.0/ -X POST --data '{ "jsonrpc": "2.0", "id": null, "method": "GeoObject.SetBillboard", "params": { "id": 0, "is_billboard": true } }'

もし、作成したビルボードが向きによって陰影が付き、時には真っ黒になってしまう状態を回避したい場合には次のように EmissiveColorFactor を設定すると常に見やすくなります。

curl -Ss -i http://127.0.0.1:50080/api/json-rpc-2.0/ -X POST --data '{ "jsonrpc": "2.0", "id": null, "method": "GeoObject.SetMaterialParam", "params": { "id": 0, "material_params": { "EmissiveColorFactor": 1 } } }'

image

Clone this wiki locally
You can’t perform that action at this time.