इस प्रयास करें:
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;
}
तो आप क्या है, चाहे ए.ए. उपलब्ध है के लिए एक परीक्षण है। यह विधि थ्री.जेएस में काम करती है। (: // gpu आदि क्रोम), लेकिन एक मनमाना js स्क्रिप्ट में उस डेटा को संभव नहीं है मैं क्रोम और अपनी विशेष पृष्ठों को देखना कोशिश की है।
FXAA का उपयोग करना इतना लंबा रेखा मोटाई 1.6 के आसपास है के रूप में इतना बुरा नहीं है। अन्यथा, आपको मिश्रण करने के लिए पर्याप्त रेखा नहीं मिलती है। FXAA उन दृश्यों के लिए बहुत बढ़िया है जिन पर बहुत कुछ चल रहा है, लेकिन यदि दृश्य अधिकतर रेखाएं हैं, तो यह रेखाओं को पृष्ठभूमि में बहुत अधिक फीका करता है।
इसके लिए सबसे अच्छा जवाब FXAA हो सकता है और यहां दृष्टिकोण का उपयोग होगा:
https://github.com/OpenGLInsights/OpenGLInsightsCode/tree/master/Chapter%2011%20Antialiased%20Volumetric%20Lines%20Using%20Shader-Based%20Extrusion
यह एक ज्यामिति शेडर का उपयोग करता है हाँ, लेकिन पहले, यह एक शीर्ष शेडर के उपयोग का उल्लेख है एक ही परिणाम प्राप्त करने के लिए । यह अधिकतर अच्छी लाइनों को दे सकता है।
आशा है कि मदद करता है! : डी
AFAIK केवल जेएस का उपयोग करना असंभव है, लेकिन अगर मैं गलत हूं तो मुझे सही करें। आपको पता लगाने के लिए कुछ ब्राउज़र-कार्यान्वयन का उपयोग करना होगा (यदि संभव हो) – alexandernst
एक साधारण दृश्य (एक पंक्ति) को प्रस्तुत करने और संदर्भ के विरुद्ध एकल पिक्सेल की तुलना करने के बारे में क्या? – noiv
@noiv मुझे लगता है कि जिस तरह से हम इसे लागू करने जा रहे हैं, वह एक साधारण दृश्य प्रस्तुत करना है, लेकिन संदर्भ के मुकाबले तुलना करने के बजाय बस कुछ रंगों को देखें।यदि एंटी-एलियासिंग एक काले रंग की पृष्ठभूमि पर एक सफेद रेखा को रेंडर करना बंद कर देता है तो उसे किसी ग्रे का उत्पादन नहीं करना चाहिए। – Evanbbb