OpenGL'u öğrenmeye çalışıyorum ve Nehe guides'u geçerek C++ becerilerimi geliştiriyorum, ancak tüm örnekler Windows içindir ve şu anda Linux'tayım. Linux altında işlerin nasıl yapılacağına dair hiçbir fikrim yok ve Linux için taşınmış olan sitedeki kodda açıklanmayan bir kod daha var. iş SDL örneğidir: http://nehe.gamedev.net/data/lessons/linuxsdl/lesson01.tar.gz). Linux altında OpenGL'ye karşı biraz daha spesifik olan başka bir kaynak var mı?Ubuntu'da OpenGL Öğrenme
cevap
Yapılacak ilk şey OpenGL kitaplıklarını yüklemektir. Ben tavsiye:
bunları kurduktan sonrafreeglut3 freeglut3-dev libglew1.5 libglew1.5-dev libglu1-mesa libglu1-mesa-dev libgl1-mesa-glx libgl1-mesa-dev
, onlara link size derleme yaparken: example.cpp olarak
g++ -lglut -lGL -lGLU -lGLEW example.cpp -o example
OpenGL kütüphaneleri şöyle şunlardır: Sonra
#include <GL/glew.h>
#include <GL/glut.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glext.h>
, shader gibi daha gelişmiş opengl seçenekleri etkinleştirmek için glutCreateWindow Çağrı sonra bu yerleştirmek için:
GLenum err = glewInit();
if (GLEW_OK != err)
{
fprintf(stderr, "Error %s\n", glewGetErrorString(err));
exit(1);
}
fprintf(stdout, "Status: Using GLEW %s\n", glewGetString(GLEW_VERSION));
if (GLEW_ARB_vertex_program)
fprintf(stdout, "Status: ARB vertex programs available.\n");
if (glewGetExtension("GL_ARB_fragment_program"))
fprintf(stdout, "Status: ARB fragment programs available.\n");
if (glewIsSupported("GL_VERSION_1_4 GL_ARB_point_sprite"))
fprintf(stdout, "Status: ARB point sprites available.\n");
Bu, tüm OpenGL işlevlerini etkinleştirmeli ve eğer yoksa, size sorunları anlatmalıdır.
adresinde opengl 4.5 işlevselliğini elde etmenin bir yolu daha uygun olurdu? ya da en az 4.1? –
'fprintf (stdout,"% s \ n ", glGetString (GL_VERSION));' çıktılar 3.0 Mesa 17.3.0-devel' 4 olmasına rağmen.5 'OpenGL çekirdek profil sürümü dizesi: 4.5 (Çekirdek Profil) Mesa 17.3.0-devel' –
Belki de windows ve widget'ları çizmek için Qt'yi kullanmak istersiniz.
Here 'ın Nehe dayalı bir öğretici nasıl Qt OpenGL görüntüler oluşturmak için size göstermek için kılavuzluk eder. OpenGL öğrenmek
, OpenGL Red Book mutlaka okumalısınız. Çevrimiçi bir versiyonu var. Çok iyi açıklamaları ve örnekleri var.
Ben başlangıçta en büyük fark derleme süreç olduğunu tahmin edersiniz. Ubuntu'da basit OpenGL uygulamalarını derlemek için yararlı bir Makefile.
INCLUDE = -I/usr/X11R6/include/
LIBDIR = -L/usr/X11R6/lib
FLAGS = -Wall
CC = g++ # change to gcc if using C
CFLAGS = $(FLAGS) $(INCLUDE)
LIBS = -lglut -lGL -lGLU -lGLEW -lm
All: your_app # change your_app.
your_app: your_app.o
$(CC) $(CFLAGS) -o [email protected] $(LIBDIR) $< $(LIBS) # The initial white space is a tab
kaydet bu da bir dosya Makefile denir ve aynı dizinde olmalıdır. yazarak derleyin veya Vim'den yapın.
İyi şanslar
makefile için biraz güncelleme ben @Millthorn gelen bu eski cevapları buldum ve işe yaradı çünkü: bunu standart lib beri dahil yolunu definde gerek yok https://stackoverflow.com/a/2459788/1059828
açık GL derlemek için minimal bir makefile bu gibi görünebilir:
LDFLAGS=-lglut -lGL -lGLU -lGLEW -lm
all: your_app
http://surflab.cise.ufl.edu/wiki/Getting_Started_with_OpenGL_in_Ubuntu
- 1. Öğrenme Etkinleştirme
- 2. Öğrenme Java,
- 3. ADO.NET'i öğrenme
- 4. Öğrenme .. CodeIgniter
- 5. OpenGL ES 2.0 ile OpenGL 4 arasındaki farklar
- 6. OpenGL
- 7. OpenGL
- 8. OpenGL:
- 9. OpenGL
- 10. OpenGL
- 11. openGL
- 12. Derin öğrenme teknikleri kullanarak denetimli öğrenme (belge sınıflandırması)
- 13. Öğrenme Ruby Curses
- 14. Öğrenme kaynakları Lisp
- 15. Etkileşimli SVG - Öğrenme Kaynakları?
- 16. Öğrenme kaynakları Django + AJAX
- 17. Php makine öğrenme kütüphanesi?
- 18. Öğrenme kuramları Kategori teorisi
- 19. Öğrenme Materyalleri? Lütfen listeleyin!
- 20. Keras öğrenme oranı SGD
- 21. Öğrenme Yii2: Veri Dönüştürme
- 22. Öğrenme Ant yolu stili
- 23. Öğrenme Temel Grafikleri
- 24. OpenGL alfa harmanlama
- 25. QG OpenGL Widget'ta OpenGL işlevleri nasıl kullanılır?
- 26. OpenGL sise karşı OpenGL ES sis
- 27. Öğrenme Django - İyi başlangıç projesi
- 28. En İyi Makine Öğrenme paketi?
- 29. Öğrenme Haskell: String manipülasyon sorusu
- 30. Öğrenme için aralıklı tekrarlama (SRS)
Yığın Taşması konusundaki konu kapanışlarının biraz Nazi olduğunu kabul ediyorum ama eminim ki birçok insan bu soruna sahip; [GameDev StackExchange] (http://gamedev.stackexchange.com/) – cossacksman