我需要找出如果用戶使用Chrome瀏覽網站上的WebGL的黑名單顯卡的GPU:檢測與瀏覽器和JavaScript
http://support.google.com/chrome/bin/answer.py?hl=en-GB&answer=1220892
具體來說,我需要知道如果他們正在使用ATI卡。我使用THREE.js進行的項目在ATI卡上的Chrome瀏覽器中查看時會產生非常難看的渲染(線條不會反鋸齒),我想提供替代方案。
我知道有一個後期效果會模糊線條,但藝術指導的效果更差。
我需要找出如果用戶使用Chrome瀏覽網站上的WebGL的黑名單顯卡的GPU:檢測與瀏覽器和JavaScript
http://support.google.com/chrome/bin/answer.py?hl=en-GB&answer=1220892
具體來說,我需要知道如果他們正在使用ATI卡。我使用THREE.js進行的項目在ATI卡上的Chrome瀏覽器中查看時會產生非常難看的渲染(線條不會反鋸齒),我想提供替代方案。
我知道有一個後期效果會模糊線條,但藝術指導的效果更差。
試試這個:
function aa_test() {
renderer.setSize(4, 4);
var ortho_camera = new THREE.OrthographicCamera(0, 4, 0, 4, 0, 1);
var output = new Uint8Array(4);
var material = new THREE.LineBasicMaterial({
color: 0xffffff
});
var geometry = new THREE.Geometry();
geometry.vertices.push(new THREE.Vector3(0, 0, 0));
geometry.vertices.push(new THREE.Vector3(4, 4, 0));
var line = new THREE.Line(geometry, material);
renderer.clearTarget(aa_target.renderTarget, true, true, true);
renderer.context.lineWidth(4);
aa_target.add(line);
renderer.render(aa_target, ortho_camera, aa_target.renderTarget);
renderer.context.readPixels(0, 2, 1, 1, renderer.context.RGBA, renderer.context.UNSIGNED_BYTE, output);
if (output[0] == 0)
aa_available = false;
}
所以,你所擁有的,是AA是否可用的測試。此方法在Three.js中可用。我已經嘗試過查看Chrome及其特殊頁面(Chrome:// gpu等),但將數據導入任意js腳本是不可能的。
使用FXAA並不是很糟糕,因爲線寬約爲1.6。否則,你沒有足夠的線來混合。 FXAA非常適合有很多場景的場景,但如果場景大部分是線條,那麼它往往會使線條背景過分褪色。
對於這一點,最好的回答將是FXAA這裏使用方法:
這款採用幾何着色器是的,但早些時候,它提到使用頂點着色器來獲得相同的結果。這很可能會提供更好的線條。
希望有幫助! :D
因爲瀏覽器會損壞字符串值,所以通常可用於查找信息的OpenGL調用在WebGL中用於此目的是沒用的:http://jsbin.com/ovekor/3/但是,可以使用擴展名WEBGL_debug_renderer_info
,但可以使用該擴展名,但當前的瀏覽器支持是未知的,並且由於它已被標記爲安全風險,所以它不會順利使用(可能需要某種調試標誌或用戶提示)。
簡單地測試一下也是有點邪惡的。對於「ATI卡」,因爲驅動程序可能會改進,或者某些卡片上不存在問題。 (這類似於臭名昭着的瀏覽器嗅探與特徵檢測。)
因此,您最好的選擇是按照評論中的建議做一點測試渲染。
我知道有一個帖子效果模糊線條,但藝術指導的結果更糟。
如果你的意思HorizontalBlurShader和VerticalBlurShader,那麼我建議你嘗試FXAAShader,這是一個實際的屏幕空間抗混疊濾波器,而不是隻模糊整個圖像。
AFAIK不可能只使用JS,但糾正我,如果我錯了。您需要使用一些瀏覽器實現來檢測(如果可能) – alexandernst
渲染一個簡單場景(一行)並將單個像素與參考進行比較怎麼辦? – noiv
@noiv我認爲我們要實現它的方式是渲染一個簡單的場景,而不是與參考進行比較只是尋找特定的顏色。如果抗鋸齒功能關閉,則黑色背景上的白線不應產生灰色。 – Evanbbb