網(wǎng)站集約化建設(shè)解讀百度推廣優(yōu)化是什么意思
場景和數(shù)據(jù)之間的互通: 場景數(shù)據(jù)化或者數(shù)據(jù)化場景,是當前的主流場景數(shù)據(jù)構(gòu)成方式。方便傳輸方便交換甚至是交互。
內(nèi)置數(shù)據(jù)互通機制更有利于用戶在各種應(yīng)用場合下實現(xiàn)具體的3D相關(guān)的應(yīng)用需求。用戶只需要關(guān)心標準的或者約定好的數(shù)據(jù)定義及操作方式就能方便使用。
這樣,也能方便應(yīng)用GLB或者USD數(shù)據(jù)規(guī)范。
當前示例源碼github地址:
https://github.com/vilyLei/voxwebgpu/blob/feature/rendering/src/voxgpu/sample/DataDrivenTest.ts
當前示例運行效果:
json數(shù)據(jù):
{"renderer": {"camera": { "eye": [1100, 1100, 500], "up": [0, 1, 0] }},"entities": [{ "axis": { "entity": { "size": 500 } } },{ "sphere": { "entity": { "radius": 80, "transform": { "position": [0, 0, 200] }, "albedo": [0.9, 0.1, 0.02], "arm": { "a": 1.0, "r": 0.2, "m": 0 } } } },{"cube": {"entity": {"size": 80,"transform": { "position": [200, 0, 0], "scale": [2, 1.5, 3], "rotation": [-190, 0, 200] },"albedo": [0.1, 0.9, 0.02],"arm": { "a": 1.0, "r": 0.2, "m": 0 },"animate": {}}}},{"torus": {"entity": {"radius": 90,"axisType": 1,"longitudeNumSegments": 20,"latitudeNumSegments": 50,"transform": { "position": [0, 150, 0] },"albedo": [0.9, 0.1, 0.7],"arm": [1.0, 0.3, 0]}}},{"model": {"entity": {"url": "static/assets/draco/monkey.drc","transform": { "position": [0, 320, 0], "scale": [100, 100, 100], "rotation": [0, 90, 0] },"albedo": [0.1, 0.7, 0.9],"arm": [1, 0.3, 0.1]}}},{"boundsFrame": {"entity": {"minPos": [-300, -300, -300],"maxPos": [300, 300, 300],"frameColor": [0.9, 1.0, 0.1]}}},{"gltf": { "entity": {} }},{"usd": { "entity": {} }}]
}
此示例基于此渲染系統(tǒng)實現(xiàn),當前示例TypeScript源碼如下:
export class DataDrivenTest {private mScene = new DataDrivenRScene();initialize(): void {let url = "static/assets/scene/sceneData01.json";new HttpFileLoader().loadJson(url,(json: object, url: string): void => {console.log("json: ", json);this.initScene(json);});}private initScene(json: object): void {this.mScene.initialize(json);this.initEvent();}private initEvent(): void {const rc = this.mScene;new MouseInteraction().initialize(rc.rscene, 0, false).setAutoRunning(true);}run(): void {this.mScene.run();}
}