OpenGL kitabı

Başlatan microanaliz, 08 Haziran 2011 - 16:41:37

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

microanaliz

Bir openGL kitabı var bunu ingilizceden Türkçeye çevirirseniz linux kullanıcılarının önü bayağı açılacak grafik çiziminde.

adres internette var gerçi kitap...
MicroAnaliz

umutubuntu

Kitabın lisans durumu nedir, ücretsiz dağıtılmaya müsait midir ?
Bu duruma açılık getirildikten sonra müsaitse kitabın ana kaynağını link veriniz.

heartsmagic

Öneri ve İstekler bölümü sadece bizim bileşenlerimizle ilgili, çeviri konusunu anlıyorum ancak Linux konusundaki her şeyin bizim tarafımızdan çözülmesinin imkânı yok. Konuyu çeviri bölümümüze alalım, bir gönüllü çıkar belki. Fakat kitap çevirmek...

Ayrıca @umutubuntu'nun belirttiği lisans meselesi de ayrı bir konu.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

microanaliz

Yabancı dilim olmadığı için bir şey diyemem ama sanırım serbest tek sıkıntı Türkçe değil...
MicroAnaliz

umutubuntu

Kitabın orijinal kaynağını buraya aktarırsanız bizler kontrol edebiliriz.

microanaliz

MicroAnaliz

maydin95

Lisans durumunu öğrenemedim ama şu site iş çıkarttığı için Ubuntu Bir'e :D yükledim.

http://ubuntuone.com/p/10cD/

Aslında çevrilebilir. 10 kişi bulduk mı çok zor değil gibi. Kitabın çoğu şu gibi:

glLogicOp
Purpose
Sets the logical pixel operation for color index mode.
Include File
<gl.h>
Syntax
void glLogicOp(GLenum opcode);
Description
The logical pixel operation defines the combination of pixel values. When a new
color index value is specified for a pixel location, it is combined logically with the
current color index value for that pixel. To enable logical pixel operations, call
glEnable(GL_LOGIC_OP), to disable call glDisable(GL_LOGIC_OP). When
logical pixel operations are enabled, incoming pixel values are combined with
existing pixel values in the manner specified by opcode. When logical operations are
not enabled, the net effect of pixel operations is as if GL_COPY were specified.
Logical pixel operations are not supported in RGBA color mode.
Parameters
opcode
GLEnum: Specifies the logical pixel mode to use. Any of the values listed in Table
8-2 are valid. This table lists the logical operation and the result of the operation,
with s representing the source color index value, and d representing the destination
color index value.
Returns
None.
Example
See the FLASHER example program from the CD. This example uses GL_XOR to
produce smooth animation without double buffering.
See Also
glGet, glIsEnabled, glEnable, glDisable
Table 8-2 Valid Pixel Copy Operations

Gördüğünüz gibi tek sayfa bu kadar az. Ancak hangi dil ile anlatmaya çalışıyor bunu anlayamadım. C++ gibi geldi ama.
Din; ilimle birleşirse nefaset, cehaletle birleşirse rezalet, siyasetle birleşirse de felaket olur.

sem

"Ancak hangi dil ile anlatmaya çalışıyor bunu anlayamadım"

Kitabın 6. sayfasında dil bölümü var... Gözünüzden kaçtı sanırım...

Language With the exception of two chapters that specifically deal with C++ frameworks, all the source code in this book is written in C. The choice between C and C++ can become an almost religious crusade between two warring camps. It is reasonable to expect that any competent C++ programmer can also follow well-structured C code, but the converse is not always true. There is a popular C++ library for OpenGL called Open Inventor; any attempt here to build a C++ class library around OpenGL would be a duplication of an already fine effort and is beyond the scope and purpose of this book anyway. This brings us to our choice of tools.
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

microanaliz

C++ anlatım Qt gibi sınıflar var diye C++ anlatılmış
MicroAnaliz

microanaliz

#9
http://www.idefix.com/kitap/opengl-superbible-richard-s-wright/tanim.asp?sid=KBTX9106FG3SLDCOUD54
Kitabın kendisi bu Türkiye de hale ingilizce adı altında satılıyor...openGl için A-Z her şey var
http://www.amazon.com/gp/product/0201604582/qid=1021145615/sr=1-1/ref=sr_1_1/104-9612662-3531120?n=283155
Bu da amozondaki satış yeri...
http://www.seckin.com.tr/urun.aspx?productID=8485
Bu da openGL ve glut için ama beni pek tatmin etmedi desem yeri...
MicroAnaliz

alquirel

Alıntı yapılan: microanaliz - 12 Ağustos 2011 - 22:56:37
http://www.idefix.com/kitap/ubuntu-atalay-kelestemur/tanim.asp?sid=K71UFVV1I4E7TNWF4KVJ
Kitabın kendisi bu Türkiye de hale ingilizce adı altında satılıyor...openGl için A-Z her şey var
...
Bir yanlışlık oldu galiba, ben openGL için bir şey göremedim bu bağlantıda...

microanaliz

Düzeltildi yanlışlık olmuş kusura bakmayın kasti bir şey yoktu...
MicroAnaliz

alquirel

Alıntı yapılan: microanaliz - 13 Ağustos 2011 - 00:51:10
Düzeltildi yanlışlık olmuş kusura bakmayın kasti bir şey yoktu...

Kasti bir şey olduğu için değildi iletim, sakın yanlış anlama ;)

maydin95

Bu kitabı biraz okuyayım dedim ve kitap sadece Wİndows için anlatıyor. Kitabın içinde Lİnux kelimesi geçmiyor. Bildiğiniz bir OpenGL e-kitabı var mı?
Din; ilimle birleşirse nefaset, cehaletle birleşirse rezalet, siyasetle birleşirse de felaket olur.

sem

Open-GL fonksiyonları platform bağımsız olmalı. Kodları denediğinizde hata aldınız mı? Aldıysanız buraya hatta daha doğrusu farklı bir başlıkta aktarabilir misiniz?
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

travego0403

Bir önceki mesajda da söylendiği gibi OpenGL fonksiyonları platform bağımsızdır. Şunu söyleyebiliriz OpenGL sadece çizimleri yapmak için bir API'dir. Çizimleri yapabilmek için bir pencere oluşturmak gerekir. Bunuda Windows için Win apileriyle yapılmış olabilir bu yüzden hata alıyor olabilirsiniz.

Pencere oluşturma gibi işlemler için OpenGL için yazılmış olan glut kütüphanesini kullanabilirsiniz.Yalnız glut eski bir kütüphanedir.Yinede ilk başlarken öğrenmek için iyi olabilir. Bunun yerine SDL'de kullanılabilir. Eğer OpenGL hakkında hiç bir bilginiz yoksa şu kaynaklara göz atmanız iyi olabilir.

http://wiki.ubuntu-tr.net/index.php/OpenGL_Programlamaya_Giri%C5%9F

http://www.belgeler.org/howto/opengl-giris.html

http://forum.ubuntu-tr.net/index.php?topic=26799.0
"Matematik bir dildir ve bu dilde şairlere fizikçi denir." Richard Feynman

maydin95

Alıntı yapılan: sem0900 - 20 Eylül 2011 - 20:57:37
Open-GL fonksiyonları platform bağımsız olmalı. Kodları denediğinizde hata aldınız mı? Aldıysanız buraya hatta daha doğrusu farklı bir başlıkta aktarabilir misiniz?

Aslında orada Windows için kütüphane kurulumu falan görünce denemedim. Ancak bir sorun olur diye korkuyorum.
Din; ilimle birleşirse nefaset, cehaletle birleşirse rezalet, siyasetle birleşirse de felaket olur.

sem

travego0403'ün verdiği bağlatılar ile kütüphaneleri kuırabilirsiniz. Denemekte fayda var... Büyük ihtimalle OpenGL'lerde sıkıntı çıkmayacaktır. Benim C çalıştığım kitapta da Win üzerinden anlatım vardı. getch() dışında bir sorun yaşadığımı hatırlamıyorum ki getch de dahil sorun çıkmışsa da sorun değildir aslında. Aynı fonksiyonun muadilini bulmak yeterli... Kolay gelsin...
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

travego0403

Aslında bu işin en iyi eğitselleri olan yerdeki dersler Türkçeleştirilse çok iyi olur.Yabancı dilin varsa burayı da takip edebilirsin. Eğer benim gibi yabancı dilin zayıf( tarzanca :) ) olsada örnek kodları inceleyerek öğrenebilirsin.
Eğitseller eski ve Win API'leri üzerinden anlatılmış fakat farklı platformlar içinde kaynak kodlar verilmiş.
http://nehe.gamedev.net/tutorial/lessons_01__05/22004/
"Matematik bir dildir ve bu dilde şairlere fizikçi denir." Richard Feynman

maydin95

C için getch() hariç sorun yok çünkü ANSI diye bir şey var. OpenGL için ise pek bir şey diyemeyeceğim. Hani oyunları başka platformlar için dönüştürmek falan zor ya ondan kodlar farklı olabilir diye düşündüm. İngilizce için ilk bakışta anlayamıyor olsam da biraz programlama ile ilgili terimleri öğrenip çalışırım.

http://nehe.gamedev.net/tutorial/your_first_polygon/13002/ içinse orada DOWNLOAD kısmında bissürü şey var. Onlar ne tam olarak çözemedim ama o kadar farklı kodun ne işi var?

http://nehe.gamedev.net/tutorial/cg_vertex_shader/25002/ sayfasında From ve To yerleri için sadece oraları Linux için yapsak yetiyorsa sorun yok. Ondan korkuyorum açıkçası.

Ayrıca sağlam bir kaynak varsa Türkçeleştririlebilir aslında. Ya da sağlam bir kaynak en iyi olur. Herşeyini anlatan.
Din; ilimle birleşirse nefaset, cehaletle birleşirse rezalet, siyasetle birleşirse de felaket olur.

travego0403

Alıntı yapılan: maydin95 - 24 Eylül 2011 - 00:03:52
http://nehe.gamedev.net/tutorial/your_first_polygon/13002/ içinse orada DOWNLOAD kısmında bissürü şey var. Onlar ne tam olarak çözemedim ama o kadar farklı kodun ne işi var?
Aslında hepsi aynı OpenGL kodu, yukarıda bahsettiğim gibi OpenGL sadece çizim işlemleri için bir API. İçerisinde kaplamaları belleğe yüklemek için bile bir fonksiyon  yok ya da ben bilmiyorum. Çizimleri yapabilmek bir pencere oluşturman gerekli ve klavye mouse olaylarını yakalamak için de bir yardımcı kütüphaneye ihtiyacın var. İşte bunları farklı kütüphanelerle yazılmış kaynak kodları orada verilmiş. Mesela OpenGL için yazılmış eski bir kütüphane olan glut başlangıç için iyi olabilir ama bazı durumlarda yetersiz kalabiliyor. Glut platform bağımsız bir kütüphane bu kodlar hiç bir değişiklik yapılmadan Linux üzerinde de derlenebilir.

Bu iş için kullanabileceğin bir başka kütüphanede SDL olabilir. SDL açılımı Simple DirectMedia Library. Bu da platform bağımsızdır.SDL ile oluşturduğun pencere üzerinde de gerekli ayarlamalar yapıldığında OpenGL çizimleri yapılır. Hatta Gluttan daha performanslı olduğu söyleniyor.Ayrıca kaplamalar için de hafızaya yüklemek, ayarlarını yapmak için fonksiyonlar mevcut. SDL için bu ayki SUDO dergisine bakabilirsin orda bir yazı dizisi başlatmıştık.Gerçi bu yazı dizisi OpenGL içermeden 2 Boyutlu oyun yapımı üzerineydi. Biraz daha geniş geniş  anlatımlı bir kaynak hazırlıyordum ama şu an yayınlanabilecek düzeyde değil. İleriye doğru C++ bölümümüzden duyurabilirim. Takipte olun. :)

Önerebileceğim şey yukarıda verdiğim Türkçe kaynaklarla işe başlaman, daha sonra OpenGL fonksiyonları ile glut ya da herhangi bir pencere yöneticisi fonksiyonlarını ayırt edebileceksin. En basitinden OpenGL fonksiyonları gl... öneki ile başlar, örneğin glBegin(GL_LINE);

glut fonksiyonları ise glut.... öneki ile başlar örneğin glutCreateWindow("Pencere Basligi");

Alıntı yapılan: maydin95 - 24 Eylül 2011 - 00:03:52
http://nehe.gamedev.net/tutorial/cg_vertex_shader/25002/ sayfasında From ve To yerleri için sadece oraları Linux için yapsak yetiyorsa sorun yok. Ondan korkuyorum açıkçası.
Tam incelemedim ama sanırım o kadar basit değil :)

Neden bu kadar konuştun diye şikayet edecek diye olursan :) ise grafik programcılığında o kadar iyi olmayabilirim ama programlamanın en sevdiğim dalı olduğu içindir.
"Matematik bir dildir ve bu dilde şairlere fizikçi denir." Richard Feynman

maydin95

Alıntı Yap
Alıntı yapılan: maydin95 - Bugün, 00:03:52
http://nehe.gamedev.net/tutorial/cg_vertex_shader/25002/ sayfasında From ve To yerleri için sadece oraları Linux için yapsak yetiyorsa sorun yok. Ondan korkuyorum açıkçası.
Tam incelemedim ama sanırım o kadar basit değil 

Neden bu kadar konuştun diye şikayet edecek diye olursan  ise grafik programcılığında o kadar iyi olmayabilirim ama programlamanın en sevdiğim dalı olduğu içindir.

O kadar basit değil dediniz ya işte korktuğum taraf orası. Kitabın 300. sayfasına -atıyorum- sağ salim geldikten sonra böyle sorunlar çıkmaya başlar diye korkuyorum. Ama C++'yı da bitireyim başlayabilirim. Şimdi Deitel C ve C++ kitabını okuyorum C için 2 bölüm kaldı: Yığınlar vs. ve Önişlemci falan. Sonra C++ ile belki beraber götürebilirim.

Ha hemen sorayım oradaki adresleri Linux ile değiştirmek yetmiyorsa daha ne yapılacak. Çok zor değilse iyi.
Din; ilimle birleşirse nefaset, cehaletle birleşirse rezalet, siyasetle birleşirse de felaket olur.

travego0403

O örnek sanırım Shader programlama ile ilgili. Shader programlama ile fazla bir bilgim yok.

Şimdiden Shader programlamaya bakıpta bir şeyler öğrenmeye çalışmanız biraz ters gibi geliyor. Her şeyin bir sırası var, siz bu konuya geldiğiniz zaman zaten hangi kodların değişmesi gerektiğini öğrenmiş olacaksınız. Bunu Matematik öğrenmeye benzetebiliriz, eğer ki biz 4 işlemi ve kullanmayı bilmiyorsak problemleri çözemeyiz.Problemleri çözmeye başladıktan sonra üslü sayılar, köklü sayılar, trigonometri ...vs  konuları öğrenebiliriz. Bütün bunlardan sonra benim gerçek Matematik dediğim Türev, İntegral gibi konulara girebilirsiniz. Bütün buraya kadar öğrendiklerin Türev ve İntegrali anlaman için gerekli olanlardı.Bu son söylediklerim benim düşüncemdi :) Bir başkası farklı şeyler düşünebilir.

Eğer ki bir ucundan köşesinden başlamazsanız hiç bir zaman başlayamazsınız, çünkü kendimden biliyorum. Programlamaya başlarken o dil mi olsun bu dil mi olsun diye düşünürken hayli zaman kaybetmiştim. Okulda C++ dersleri başlayınca bu sorun ortadan kalkınca rahat rahat öğrendim. Artık temel programlama bilgisi dediğimiz şeye sahip olduktan sonra bir başka dile ya da bir başka platformda kod yazmaya çok çabuk adapte olabiliyorsunuz.
"Matematik bir dildir ve bu dilde şairlere fizikçi denir." Richard Feynman