โปรแกรมเมอร์กราฟิกทุกคนควรเขียนอะไร [ปิด]


18

ฉันเคยเห็นคำถามนี้เกี่ยวกับ SO แต่ที่นี่ฉันต้องการให้ความสำคัญกับ GFX

ดังนั้นในความเห็นของคุณสิ่งที่แอปพลิเคชัน / ฟีเจอร์ที่ GFX โปรแกรมเมอร์ทุกคนต้องการจะเขียน / เปลี่ยนแปลงเพื่อให้ดีขึ้น?

วิกิชุมชนเนื่องจากไม่มี "คำตอบที่ถูกต้อง"

LE: ไม่ได้หมายถึงเกมจริง แต่เป็นคุณสมบัติกราฟิกเช่นการเปลี่ยนแปลงบางอย่างในเอนจิ้น (เช่นการโหลดวัตถุ) การสร้างผู้แต่งเป็นต้นและอื่น ๆ


2
คล้ายกับคำถามนี้: gamedev.stackexchange.com/questions/854/…
Bryan Denny

คำตอบ:


22

คำตอบของฉันเหมือนกันเสมอ: หากคุณยังไม่เคยเขียนมาก่อนเขียน raytracer

คุณจะต้องจัดการกับโครงสร้างการปรับให้เหมาะสมความแม่นยำเชิงตัวเลขและปัญหาอื่น ๆ ทุกประเภท แต่คุณจะต้องทำงานกับคณิตศาสตร์ทางแสงโดยตรงในแบบที่คุณไม่ค่อยทำเมื่อต้องรับมือกับการแฮ็กและการประมาณทั้งหมดที่ประกอบขึ้น เครื่องมือสร้างภาพแบบเรียลไทม์

ตัดระบบการโหลดทั้งหมดออกไป, buzzwords - of - the-Week, เลื่อนไปข้างหน้านี้หรือไปข้างหน้า - และคุณก็ออกจาก, ในที่สุด, ด้วยแสงที่เดินทางผ่านสื่อ ในที่สุดนั่นคือทั้งหมดที่มีกราฟิก


น่าสนใจฉันใคร่ครวญแนะนำ raytracer ด้วยซึ่งเป็นแบบฝึกหัดคณิตศาสตร์ที่ดีมาก ฉันไม่เห็นด้วยกับการเลื่อนเวลาเป็นคำศัพท์ประจำสัปดาห์เช่น raytracing การเปลี่ยนแปลงครั้งใหญ่ในวิธีที่คุณเข้าถึงการเรนเดอร์ของคุณซึ่งสำหรับโปรแกรมเมอร์กราฟิกดูเหมือนจะเป็นสิ่งที่คุณควรระวัง
Kaj

ฉันจะบอกว่าการปรับให้เหมาะสมนั้นไม่สำคัญเท่ากับการจัดการกับตาข่ายตามอำเภอใจซึ่งเป็นขั้นตอนที่ผู้คนจำนวนมากไม่เคยได้รับจากรังสี
Jonathan Fischoff

ฉันจะสอง (สาม?) ข้อเสนอแนะนี้กับข้อแม้ที่ (ดังกล่าว) จะต้องสนับสนุนตาข่ายและไม่เพียงแค่หยุดที่ทรงกลม - บน - a - chequerboard คะแนนโบนัสสำหรับความพยายามในการให้แสงสว่างระดับโลก แม้ว่าคุณจะไม่ได้ปรับให้เหมาะสมเป็นสิ่งที่ใช้งานได้จริงคุณควรพยายามทำความเข้าใจว่าบิตช้าและทำไม
JasonD

และข้อแม้หนึ่งข้อเสนอแนะนี้ - ในขณะที่แสงเดินทางผ่านสื่อคือทั้งหมดที่มีอยู่ในกราฟิกมันจะให้การฝึกอบรมเพียงเล็กน้อยกับสิ่งที่คุณต้องการในสภาพแวดล้อมการผลิตจริง (ปัจจุบัน)
Kaj

1
+1 การเขียน ray tracer เป็นสิ่งที่มีประโยชน์มากที่สุดที่ฉันได้เรียนรู้ในชั้นเรียนกราฟิกของวิทยาลัย
Bryan Denny

7

มันอาจเป็นประโยชน์ในการใช้งานเล็กน้อยในทุกวันนี้ แต่การเขียนที่ตัวแสดงซอฟต์แวร์อย่างน้อยก็เป็นพื้นฐานขั้นพื้นฐาน

การทำความเข้าใจกับวิธีการแปลง, โครงการ, คลิป, การจัดเรียงเชิงลึก, แรสเตอร์และแผนที่พื้นผิวรูปหลายเหลี่ยมด้วยตัวคุณเองจะช่วยให้คุณเข้าใจได้ดียิ่งขึ้นว่าฮาร์ดแวร์ 3 มิติและ API การแสดงผลกำลังทำอะไรอยู่


ค่อนข้างนี้ นอกจากนี้สไปรต์ blitter พร้อมอัลฟารองรับ .. หรืออย่างน้อยสิ่งใดก็ตามที่คุณจัดการพิกเซลด้วยค่าบิต
Lassi Kinnunen

6

ในขณะที่ไม่แสดงผลรหัสฉันคิดว่าการเขียนคอมไพเลอร์ BSP และรหัส Traversal ประกอบเป็นแบบฝึกหัดที่ดีในคณิตศาสตร์เวกเตอร์
ประการที่สอง renderer ที่ถูกเลื่อนออกไป ไม่ใช่เพราะมันเป็นคำตอบสุดท้ายสำหรับการเรนเดอร์ แต่มันจะให้ข้อมูลเชิงลึกแก่คุณในวิธีอื่นในการเรนเดอร์


2

เรียนรู้กลไกและทักษะในการเขียนเฉดสีที่ดี แม้ว่าจะไม่จำเป็น 100% ในทุกกรณี แต่เป็นทักษะที่มีค่าที่ควรรู้


ฉันเห็นด้วยกับคำตอบของคุณ แต่มันกว้างเกินไปและมีแหล่งข้อมูลบางส่วนและลิงก์ไปยังพวกเขาจะไม่เจ็บสำหรับคำตอบที่สมบูรณ์ :)
lukas.pukenis
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.