OpenGL ES ile OpenGL arasındaki farklar nelerdir?
OpenGL ES ile OpenGL arasındaki farklar nelerdir?
Yanıtlar:
OpenGL ES ve OpenGL arasındaki en önemli farklardan ikisi, ilkel oluşturma için glBegin ... glEnd çağrısı semantiğinin kaldırılması (köşe dizileri lehine) ve daha iyi destek için köşe koordinatları ve öznitelikler için sabit nokta veri türlerinin tanıtılmasıdır. genellikle bir FPU'dan yoksun olan gömülü işlemcilerin hesaplama yetenekleri
Buraya bir göz atın: OpenGL_ES
OpenGL ES, gömülü sistemler için bir opengl api'sidir. Api işlevlerinin sayısı bakımından normal açıklıktan daha basittir, ancak köşe tamponları kullanmanız ve daha fazla gölgelendirici yazmanız gerekeceğinden kullanımı daha zor olabilir.
Normal bir opengl kullandığınızda, çizmeniz gereken geometri ilkellerini çevrelemek için glBegin ve glEnd kullanabilirsiniz, ancak Opengl ES kullanırken, köşe tamponlarını kullanmanız gerekecektir. Sanırım bu performans endişeleri için.
Şu anda, iki Opengl ES sürümü vardır, 1.1 sürümü yalnızca sabit işleme hattını destekleyebilirken, 2.0 sürümü glsl gölgelendiriciyi destekler. Ancak, sabit bir işleme hattı yoktur. Başka bir deyişle, her şey için kendi gölgelendiricinizi yazmanız gerekecek.
Opengl ES temel olarak cep telefonlarında ve web'de (webgl) kullanılır. Spesifikasyona göre, masaüstü opengl sürücünüz tüm açık apis'leri destekleyebilir.
Tıpkı OpenGL 3.3 ve OpenGL ES 2.0'ın, OpenGL 3.3'ün özelliklerinin bir alt kümesini kullanarak çoğunlukla birlikte çalışabilir olduğunu eklemek gibi. Özel C ++ motorum, Android / IOS / Windows / OSX / Linux için birkaç tanımla aynı API çağrılarını kullanıyor.
Temel farklılıklar arasında:
Başka birçok farklılık da var, ancak bu önemli olanlardan birkaçını kapsıyor.
OpenGL ES, Gömülü Sistemler için Açık Grafik Kitaplığı anlamına gelir (OpenGL ES veya GLES), video oyunları tarafından kullanılanlar gibi 2D ve 3D bilgisayar grafiklerini oluşturmak için OpenGL bilgisayar grafiği oluşturma uygulama programlama arabiriminin (API) bir alt kümesidir. bir grafik işleme birimi (GPU). Akıllı telefonlar, bilgisayar tabletleri, video oyun konsolları ve PDA'lar gibi gömülü sistemler için tasarlanmıştır.
OpenGL | ES Resmi Web Sitesi: http://www.opengl.org/
wiki'den de daha fazla bilgi edinebilirsiniz: http://en.wikipedia.org/wiki/OpenGL_ES
OpenGL ES genel bakışını buradan inceleyin: http://www.khronos.org/opengles/
Kısaca ES, "gömülü sistemler" için Open GL'nin bir alt kümesidir. Belirli farklılıklar, karşılaştırdığınız sürümlere ve özellik gruplarına bağlı olacaktır.
OpenGL ES kayıt defteri, OpenGL ES ile karşılık gelen OpenGL sürümü arasındaki ayrıntılı API farklılıklarını içerir:
Ancak, OpenGL ES 3.0 için farklılıkları içeren bir belge yoktur.
"OpenGL ile OpenGL ES arasındaki farklar nelerdir" diye sorarsanız daha iyi bir yanıt alacağınızı düşünüyorum.
OpenGL ES 1.1 ve ES 2.0, OpenGL 1.5 ve 2.0 ve OpenGL 3.0 ve 4.0 arasında büyük farklar vardır.
Diğerlerinin tanımladığı gibi ES gömülü sistemler için yazılmıştır. Ayrıca, başlangıcından bu yana GL spesifikasyonunun ilk "ev temizliğini" temsil eder. OpenGL'nin a) aynı şeyi yapmanın birçok yolu vardı (örneğin, dörtlü / dikdörtgen şeklinde iki farklı yol çizebilir ve bir piksel görüntüsünü iki farklı şekilde engelleyebilirsiniz, vb.). ES, genel bir ifade olarak daha az özelliğe sahip OpenGL'den daha basittir çünkü daha az karmaşık donanım için tasarlanmıştır.
OpenGL ES 1.1'e geçmişte kaldığı ve gelecekte OpenGL veya OpenGL ES'nin mimari olarak hareket etme şeklini temsil etmediği için bakmamanızı tavsiye ederim.
Terminoloji ve sürümler oldukça kafa karıştırıcıdır (özellikle yeni başlayanlar için). OpenGL ve OpenGL-ES (GLES) hakkında daha bütünsel bir bakış için bkz. OpenGL - O Zaman ve Şimdi .
İkisi arasındaki temel fark, OpenGL ES'nin akıllı telefonlar gibi gömülü sistemler için yapılmış olması, OpenGL ise masaüstlerinde olmasıdır. Kodlama düzeyinde, OpenGL ES, glBegin / glEnd vb. Gibi sabit işlevli işlevleri desteklemez ... OpenGL, sabit işlevli ardışık düzeni destekleyebilir (bir uyumluluk profili kullanarak).
OpenGL 4.6 ile karşılaştırıldığında ES 3.0 için modern cevap, kabul edilen cevaptan çok farklıdır. Şimdi, tüm sabit boru hattı işleri gitti.
EMBEDDED SYSTEMS için ES, çok daha az sağlamdır.
OpenGL ES, gömülü sistemler için basitçe OpenGL api'dir (OpenGL ES, OpenGL Gömülü Sistemler anlamına gelir). bu nedenle, OpenGL'nin bir alt kümesidir ve cep telefonlarında ve bazı VR sistemlerinde yaygın olarak kullanılır, daha az karmaşık donanımlar için tasarlanmıştır. OpenGL ES, OpenGL'den daha az terim ve işleve sahiptir, bunu şöyle düşünün: o sistem için tam da ihtiyacınız olanı alırsınız çünkü işimizin tamamında bir işleve ihtiyacımız yoksa veya donanım bununla başa çıkamazsa bu işlev, ancak bu, bir şeyi basitleştirmek için daha fazla Gölgelendirici ve karmaşık kodlar yazma ihtiyacı nedeniyle bu API'nin kullanımını zorlaştırır çünkü OpenGL ES, OpenGL olarak grafik işlem hattında Gölgelendiriciler sağlamaz. OpenGL ES'nin son sürümü 3.2'dir, artık ek geometri ayrıntıları, yeni geometri gölgelendiricileri için Mozaikleme desteği sağlayabilir. bu yüzden OpenGL ES 3.0+ (hedef diliniz olması durumunda) öğrenmeye veya kullanmaya başlamanızı tavsiye ederim çünkü şimdi ve gelecek nesil eski sürümleri daha güçlü donanım ve grafik kartlarıyla kullanmayacak ve hedefiniz OpenGL ise v3 ile başlayın. 3+ veya 4.0+. Daha fazla zamanınız varsa, işlerin nasıl ve neden geliştirildiğini daha iyi anlamak için eski sürümleri hızlıca gözden geçirme konusunda sorun yok. daha fazla ayrıntı için bu bağlantıyı kontrol edebilirsiniz:https://en.wikipedia.org/wiki/OpenGL_ES
OpenGL , binlerce uygulamayı çok çeşitli bilgisayar platformlarına getiren 2D ve 3D grafik API'sidir.
OpenGL ES, masaüstü OpenGL'nin iyi tanımlanmış alt kümeleridir .
OpenGL® ES, konsollar, telefonlar, cihazlar ve araçlar dahil olmak üzere gömülü sistemlerdeki tam işlevli 2D ve 3D grafikler için telifsiz, çapraz platformlu bir API'dir. İyi tanımlanmış masaüstü OpenGL alt kümelerinden oluşur, ...
Bu bağlantıya bakın .
PS
WebGL, özellikleri OpenGL ES ile paylaşır, yani masaüstü OpenGL'yi öğrendiyseniz, diğerlerini (OpenGL ES, WebGL) öğrenmek kolaydır.