Tags:

สวัสดีครับ

อ่า เริ่มไงดี

คือว่า นี่เป็นโปรเจคต์ Wrapper ของ OpenGL ให้ภาษา C# ครับ ผมต้องการจะใช้ OpenGL ทำเอนจินกราฟฟิคบน C# ก็เลยตั้งโปรเจคต์เป็น OpenSource เผื่อว่าจะมีคนสนใจแนะนำอะไรให้ ไม่ก็มาช่วยเหลือกัน

เป็นการทำ OpenSource ครั้งแรกในชีวิต ก็เลยยังมีอะไรที่ไม่รู้อีกเยอะแยะ และมีอะไรที่ต้องทำพลาดไปแหงๆ อยู่ด้วยแน่ๆ เลยอยากจะมาขอคำแนะนำจากทุกท่านครับ และถ้ายังไง ใครที่ทำด้านนี้ ช่วยคอมเมนท์งานที่ลงไว้ให้ด้วยก็ดีนะครับ

ยังเป็นโปรเจคต์ครึ่งๆกลางๆ น่ะครับ แต่กะว่าจะปั่นให้เป็น 1.0 Complete ในเดืือนนี้แหละ

http://code.google.com/p/csharpgl/

Comments

By: anu
Contributor
anu's blog
on 07/07/09 17:03 #112379 toggle
anu's picture

มันมีอยู่แล้วหนิครับ ลองกูเกิ้ล "C# opengl" รึยัง ที่เห็นอันดับแรกๆ ก็มี CSGL อยู่แล้วนะครับ

ถ้าเริ่มครั้งแรก ถ้าถนัดเขียน Code แนะนำให้ส่ง Patch เข้าไปร่วมกับโครงการที่สนใจก่อนครับ ถ้าไม่ถนัดก็เริ่มแปล Document เขียน Tutorial ส่งเข้าไปก็ได้ครับ เชี่ยวชาญแล้วค่อย Fork ออกมา หรือเริ่มโครงการใหม่ๆ เพราะ OpenSource ต้องมี Community ครับ ทำอยู่คนเดียวไม่ได้โค้ดที่มีคุณภาพของแข่งขันกับโครงการอื่นๆ ไม่นานก็ตายหายไปแน่นอนครับ

By: Thaina
Windows
Thaina's blog
on 07/07/09 17:32 #112386 Reply to:112379 toggle
Thaina's picture

ลองมาทุกตัวแล้วครับ ถึงได้ลองทำของตัวเอง

เพราะไม่รู้จะฟอร์คยังไงดี ที่ผมต้องการมันเปลี่ยนอินเตอร์เฟซเค้าเรียบเลย มันคนละแนวกับเค้ามาก

ผมทำนี่เพราะว่ามันมีแผนอยากทำอยู่แล้ว ซึ่งมันไม่เหมือนตัวอื่นๆที่เค้าทำกัน ถึงได้ตั้งอันใหม่นี่ล่ะครับ

ส่วนเรื่องส่งแพชท์ นี่ไม่ถนัดเลยครับ ยิ่งเรื่องเขียน Doc เขียน Tutorial ยิ่งไม่ถนัดเข้าไปใหญ่


My Blog

By: nuntawat
WriterWindows PhoneWindowsIn Love
nuntawat's blog
on 07/07/09 19:58 #112412 Reply to:112386 toggle
nuntawat's picture

เรื่องเอกสารไม่น่าเป็นปัญหานะ ถึงแม้เราจะทำเองก็ต้องเขียนเอกสารอยู่ดี

เอกสาร ให้ใครที่มานั่งฟังนั่งดูงานเราแล้่วเข้าใจ แล้วให้เขาช่วยเขียนให้ ก็น่าจะได้อยู่นะ (ทำเหมือนกับ Microsoft Evangelist นะครับ)

ป.ล. อันนี้ความคิดผมนะ เพราะผมก็ไม่เคยทำโอเพ่นซอร์สเหมือนกัน มีแต่ทำเอกสาร เหอะๆ

ป.ย.เด็ด: "ในบางครั้งเราก็ควรถอย...เพื่อก้าวต่อไปอย่างมั่นคง... ปัญหาคือ "อะไรและทำไมควรถอย จะถอยเมื่อไร ณ ที่ไหน อย่างไรให้สง่างาม"

By: JavaDevil
iPhoneUbuntuIn Love
JavaDevil's blog
on 08/07/09 2:05 #112507 Reply to:112386 toggle
JavaDevil's picture

ผมไม่เข้าใจว่าคุณจะทำ Wrapper หรือ Graphics Engine งานจะออกมาในแนวไหน
ผมยกตัวอย่างของ Java นะครับ (พอดีไม่ค่อยรู้เรื่อง C#)
มันมี API 2 ตัวคือ JOGL กับ Java3D
ตัว JOGL จะใช้รูปแบบการเขียน เหมือนกับที่เขียน OpenGL ในภาษา C ที่เป็น Sequence เรื่อยๆ
ส่วน Java3D อันนี้ Wrap ตัว OpenGL มาอีกทีแต่รูปแบบการเขียนเป็น แบบScene Graph ทำให้เขียนแบบ OOP ได้

แล้ว Interface ที่ต้องการจะเปลี่ยน นิคุณใช้จะเอาไว้ใช้คนเดียวหรือเปล่า เลยไม่เขียน Doc

แนะนำนะครับ น่าจะทำเป็น App น่าจะดีกว่าจะได้เขียน Doc น้อยๆ (ผมก็ทำโปรเจ็ค จบเป็น app ที่มี 3D)

By: Thaina
Windows
Thaina's blog
on 08/07/09 2:45 #112511 Reply to:112507 toggle
Thaina's picture

ไม่ใช่โปรเจคต์จบน่ะครับ

คือว่าผมจะทำเอนจิ้นสำหรับเขียนเกมของตัวเองน่ะครับ แล้วจะใช้ C# กับ OpenGL

ก่อนอื่นเลยก็ต้องทำ API ก่อน แล้วค่อยเอา API ไปทำเป็นเอนจิ้นต่อ

ถ้าถามว่า Interface ที่ว่า กะจะใช้งานคนเดียวรึเปล่า?
ก็ไม่เชิงครับ แต่มันก็เป็นแค่ไอเดียของผมว่า อยากใช้ Api ที่มี Interface หน้าตา แบบนี้ ๆ ๆ

ถ้าอธิบายง่ายๆคือ OpenGL เป็น function base เป็นการเขียนแบบ Procedure ซึ่งไม่มี wrapper ตัวไหนเปลี่ยนรูปแบบนี้เลย

อย่างเวลาจะเซ็ตค่า ก็ต้องใช้ glSetXXX(int A) เวลาจะอ่านค่าในระบบก็ต้องใช้ glGetXXX(int *A)
ผมก็เลยอยากจะทำให้มันเป็น C# มากขึ้น ก็จัดการทำ interface แบบใหม่ให้บังโค้ด gl ทั้งหมดที่เรียกใช้ตรงๆ

อย่าง glGetXXX glSetXXX ข้างต้น ก็เปลี่ยนให้มันกลายเป็น object gl มี Property XXX ไว้ get/set มีการใช้ object ในการบัง Parameter หลายๆตัว มีการใช้ structure แทนที่จะโยน pointer อะไรพวกนี้

ถ้าต้องเขียน Doc ยังไงก็ต้องเขียนอยู่ดี แต่ที่คิดไว้ ถ้าเป็นไปได้ ผมกะจะเล่นสไตล์ Extreme Programming คือใช้การตั้งชื่อ กับ XML Comment เป็น Document แทน

ใน Project Wiki มีเขียนอธิบายไว้อยู่แล้วน่ะครับ (อ่า ช่วยอ่านหน่อยก็ดีนะครับ ภาษาอังกฤษ ไม่แข็งแรง หากอ่านไม่เข้าใจ ใช้คำผิด ช่วยท้วงติงด้วย)

http://code.google.com/p/csharpgl/wiki/CSharpGL


My Blog

By: JavaDevil
iPhoneUbuntuIn Love
JavaDevil's blog
on 08/07/09 13:13 #112590 Reply to:112511 toggle
JavaDevil's picture

ผมว่าลองไปดู Java3D นะครับ เค้าทำเป็น wrapperที่ทำให้ OpenGL เป็นลักษณะ OOP

By: Thaina
Windows
Thaina's blog
on 08/07/09 13:38 #112597 Reply to:112590 toggle
Thaina's picture

อ้อ ขอบคุณครับ


My Blog

By: mr_tawan
ContributoriPhoneAndroidWindows
mr_tawan's blog
on 08/07/09 16:51 #112651 toggle
mr_tawan's picture

ขี้เกียจไปเม้นที่ TGDX เพราะมันร้าง (ฮา)

เท่าที่อ่าน ตัว Wrapper คุณมี Concept ต่างจาก OpenGL ค่อนข้างมาก ดังนั้นเพื่อไม่ให้สับสนนะครับ ... เปลี่ยนชื่อดีกว่า

เผื่อในอนาคตอยากพอร์ทไปใช้ API อื่น ๆ ก็จะง่าย ไม่สับสนด้วย (แบบ อยู่ดี ๆ อยากไป Wrap XNA แทน อะไรแบบนี้เป็นต้น)