2012-05-28 22 views
0

經驗教訓07傾向於給我一個想法,即我們可以在許多渲染器中加載一個對象,以便從不同的視圖中看到它。然而,我有很多問題:屬性髒是對象及其屬性的屬性,並不是渲染器的功能:所以當第一個渲染器完成時,他將所有屬性設置爲true,以下渲染器沒有任何東西去做。例如,如果我的對象(根)是一個包含兩個不包含空對象的子對象(child1,child2)的空對象: - 第一個呈現器工作正常(即它添加了root,child1和child2),但是其他人只添加空對象,因爲root.dirty == false(請參閱renderer3D.hs,第591行) - 第一個渲染器計算適合場景的邊界框,另一個則不會因爲root/child1/child2.points.dirty ==假(見線793 renderer3D.js)XTK是否適用於多渲染器查看?

所以我的問題是:是有可能有1個複雜的對象,並在不同的渲染器(管理它,而每一個對象具有取決於渲染器的屬性:髒)?或者我應該複製它並鏈接事件,以便1渲染中的轉換在其他報告中報告?或者我應該做更多的修改?

+0

我目前的解決方案是: var initObj = new X.object(); 對於每個渲染器var newObj = new X.object(initObj); initObj = newObj; } – Ricola3D

回答

1

我剛剛創建了一個的jsfiddle創建方案,就像你說的

http://jsfiddle.net/haehn/ZdzeR/

這一切工作正常:

場景是X.object持有網格和多維數據集。將它添加到所有3個渲染器都可以正常工作並顯示兩個對象。

+0

是的,如果使用firstrenderer.onShowtime將對象添加到其他兩個渲染器中(但它沒有它,如果更改爲renderer1/2/3.add(場景),然後渲染器1/2 /3.render(),第一個渲染器顯示整個場景,但下面僅顯示紅色立方體)。但是,謝謝我會照你所說做,我會祈禱,而不是改變一個對象的變換會影響所有的渲染器! – Ricola3D

+0

此外,如果你刪除了你的renderer.camera.position = [...],你會發現這些視圖並沒有以同樣的方式居中。 我認爲問題仍然存在,而對象的髒屬性將獨立於呈現它的呈現器^^ – Ricola3D

+0

我創建了一個問題,因爲沒有正確地重新計算邊界框:https://github.com/xtk/X/issues/43 – haehn