2011-08-22 4 views
9

अंत में, मैं जमीन से अपने खुद के WebGL 3 डी इंजन बनाने का फैसला किया है, मैं http://www.khronos.org/webgl/ और http://learningwebgl.com और https://developer.mozilla.org/en/WebGLग्लमैट्रिक्स, सिल्वेस्टर और कैनवास मैट्रिक्स के बीच चयन करना?

से ट्यूटोरियल शुरू लेकिन समस्या यह है कि प्रत्येक ट्यूटोरियल इस्तेमाल किया/मैट्रिक्स की गणना के लिए अलग पुस्तकालय की सिफारिश है, इसलिए मैं कर रहा हूँ उलझन में!

  • Khronos की सिफारिश CanvasMatrix (लेकिन अब वे एप्पल से J3DI.js करने के लिए स्विच?)
  • मोज़िला सिलवेस्टर सभी तरह सलाह देते हैं!
  • Learningwebgl.com की सिफारिश glMatrix

प्रश्न है: कौन सा अच्छी तरह से 3 डी WebGL अनुप्रयोग, चार्ट और खेल के लिए अनुकूल है? (दोनों प्रदर्शन और प्रयोज्य मामलों)

धन्यवाद

उत्तर

7

http://glmatrix.googlecode.com/hg/benchmark/matrix_benchmark.html

मैं glMatrix उपयोग करते हैं, और यह ठीक काम करता है पर देखो। एपीआई थोड़ा अजीब है।

var in = vec3.create([1, 2, 3]); 

//overwrite 'in' in-place 
vec3.scale(in, 2); 

//write output to a different vector 
var out = vec3.create(); 
vec3.scale(in, 2, out); 

या glMatrix 2

var in = vec3.fromValues(1, 2, 3); 

//overwrite 'in' in-place 
vec3.scale(in, in, 2); 

//write output to a different vector 
var out = vec3.create(); 
vec3.scale(out, in, 2); 

के लिए लेकिन यह तेज़ है, यह आपरेशन मैं चाहता हूँ का समर्थन करता है, और यह सीधा है। समझ में स्रोत।

मैं दूसरों के साथ कोई अनुभव नहीं है, हालांकि है।

अद्यतन:

अधिक पुस्तकालयों के मानक http://stepheneb.github.com/webgl-matrix-benchmarks/matrix_benchmark.html पर उपलब्ध हैं। मेरे मैक पर क्रोम में, क्लोजर काफी आसानी से जीतता है। मेरे पीसी पर क्रोम में, यह टॉस-अप का अधिक है। मैं अभी भी glmatrix का उपयोग कर रहा हूं, क्योंकि यह एक जावास्क्रिप्ट फ़ाइल में रहता है।

+0

एक अफ़सोस की बात है कि वे numeric.js और सिलवेस्टर के खिलाफ बेंचमार्क नहीं है। [Numeric.js बेंचमार्क] (http://www.numericjs.com/benchmark.html) के अनुसार, सिलवेस्टर (वास्तव में 3x3 (और अधिक) मैट्रिक्स मैट्रिक्स गुणा, कम से कम अपने सिस्टम पर से के लिए गूगल बंद की तुलना में तेजी है WinXP/32 क्रोम 20 के साथ)। – feklee

+1

मैं [हाल ही में जोड़े सिलवेस्टर] (https://github.com/feklee/webgl-matrix-benchmarks) बेंचमार्क (पुल अनुरोध लंबित) करने के लिए। सिल्वेस्टर * धीमी * है। [न्यूमेरिक जावास्क्रिप्ट बेंचमार्क] (http://www.numericjs.com/benchmark.html) में क्लोजर से तेज़ क्यों है? उत्तर: वह बेंचमार्क क्लोजर के जेनेरिक मैट्रिक्स फ़ंक्शन का परीक्षण करता है, जो WebGL को समर्पित नहीं हैं। – feklee

+1

अच्छी तरह से, glMatrix में 2.2.0 vec3.create नहीं एक पैरामीटर ले करता है और एक के रूप में यहाँ दिखाया गया है शून्य लम्बाई की एक vec3 निर्माण करेंगे, लेकिन vec3.fromValues ​​(1,2,3) बनाने के लिए काम करेंगे – Octopus

संबंधित मुद्दे