關於Unity3D中WebCore外掛的問題

xy849288321發表於2012-11-15
Unit3D中提供了一個叫做WebCore的外掛,可以在Unity中嵌入web頁面,很方便,果斷下載下來嘗試一把。

使用的版本是2011-4月份的dll,下圖:



下載的壓縮包裡有這麼一個檔案,內容如下:



意思是說為了更好的......,UnityWebCore需要在OpenGL模式下執行,然後執行UnitWebCoreDemo.bat,而不是UnitWebCoreDemo.exe。其實UnitWebCoreDemo.bat也就是通過命令列以-force-opengl引數執行了UnitWebCoreDemo.exe。果斷查文件,-force-opengl這個引數就是使unity的可執行檔案以opengl方式執行。


-force-opengl (Windows only)

Make the game use OpenGL for rendering, even if Direct3D is availabe. Normally Direct3D is used; and OpenGL is used only if Direct3D 9.0c is not available.





按照說明,我分別使用opengl模式和非opengl模式執行了,都不行,求解釋!!!!

1.執行UnitWebCoreDemo.bat,截圖如下:



特別卡,幀率超低,而且文字(英文)也不顯示了(這個是Demo中別人編輯好的exe檔案,我開啟工程看了下,ForceOpenGl選項是選上的)



2.執行UnitWebCoreDemo.exe,截圖如下:



如同上面的說明文件一樣,將會是black plane(這個就是以非-force-opengl引數執行的結果)



3.開啟工程,將BForce OpenGL選項不勾選,再重新bulid,再執行,結果如下:



可以顯示,但是背景是黑的,而且沒有彩色,文字神馬的是灰色的



4.在Unity Editor 分別勾選和不勾選BForce OpenGL,除錯執行,結果如下:



和上面圖唯一的區別就是有彩色了。。。。







求解釋啊!!!!!





後續:

將該問題提交到Unity Community 的Forum上,http://forum.unity3d.com/threads/83071-Unity3d-plugin-for-embedding-webpages-on-WINDOWS-is-ready!/page6

回答如下:

The Editor can't be forced into OpenGL mode its always in DX, so 4 is to be expected.

The only way to performantly draw on a texture is forcing opengl which out of any halfway professional view is a big no go as it works badly and has a plentitude of problems.

you might actually want to look into the Awesonium thread where a solution for Unity is provided, it works independent of force opengl



&



The problem of it not working in the editor is not changeable at all. The editor is always in DX mode and in DX mode you can't draw on a render textuer from a plugin which is the root behind the issue you see here.
The same would happen on old intels or crappy ati drivers.

The Awesonium does not use render texture drawing from the plugin so yes it works better (and awesonium out of the box is already a game engine focused browser with some years of track record on that end)



簡譯:

編輯器模式下是不支援OpenGL 的,只支援DX

唯一可以實現高效能顯示紋理的方式就是OpenGL模式,但是,在所有非專業版中,它都表現的不是那麼好。



你可以試試Awesonium 這個玩意,他是不依附於OpenGL的。



&



在編譯器模式下的這種問題是不可改變的,因為編譯器總是在DX模式下渲染,而DX模式你不可以以外掛渲染的方式來渲染東西,這就是所有問題的根源。

Awesonium是不用從外掛中渲染材質的,所以它不會有這個問題。



看來這個Awesonium更牛叉啊,果斷研究去。

相關文章