คำถามติดแท็ก shaders

โปรแกรมคอมพิวเตอร์ที่ทำงานบนฮาร์ดแวร์กราฟิกและให้การควบคุมระดับสูงว่าฉากถูกเรนเดอร์อย่างไร


1
เทพดาแผ่นด้วยวัตถุบัฟเฟอร์และเฉดสี
วิธี "ที่ดีที่สุด" ในการจัดการแผ่นสไปรต์ด้วยเครื่องเคลือบเงาและบัฟเฟอร์คืออะไร ในโหมดทันทีมันเป็นเรื่องง่ายที่จะแก้ไข texcoords ของสไปรต์เมื่อวาด แต่ฉันไม่รู้ว่าจะทำอย่างไรกับ opengl ที่ทันสมัย ฉันควรเก็บเท็กซัสทั้งหมดในบัฟเฟอร์และเปลี่ยนพอยน์เตอร์สำหรับสไปรต์ทุกอันหรือมีวิธีที่ดีกว่านี้หรือไม่?

3
การสุ่มตัวอย่างพื้นผิว Direct3D ช้ามาก
ดังนั้นฉันจึงเขียนเกมเล็ก ๆ โดยใช้ Direct3D 9 และฉันใช้การทำงานหลายอย่างเพื่อภูมิประเทศ สิ่งที่ฉันทำคือการสุ่มตัวอย่าง 3 พื้นผิวและแผนที่ผสมและรับสีโดยรวมจากพื้นผิวทั้งสามตามช่องสีจากแผนที่ผสมผสาน อย่างไรก็ตามฉันได้รับอัตราเฟรมลดลงมากเมื่อฉันลองมากกว่า 1 พื้นผิวฉันจะเปลี่ยนจาก 120+ fps เป็นต่ำกว่า 50 นี่คือรหัส HLSL ที่รับผิดชอบในการชะลอตัว: float3 ground = tex2D(GroundTex, multiTex).rgb; float3 stone = tex2D(StoneTex, multiTex).rgb; float3 grass = tex2D(GrassTex, multiTex).rgb; float3 blend = tex2D(BlendMapTex, blendMap).rgb; ฉันทำผิดหรือเปล่า? หากใครมีข้อมูลหรือเคล็ดลับเกี่ยวกับการสุ่มตัวอย่างพื้นผิวหรืออะไรก็จะดี ขอบคุณ

6
ตัวอย่างที่ดีของเอฟเฟกต์แบบมัลติพาส?
ใน XNA (และ Direct3D โดยทั่วไป AFAIK) แทนที่จะสร้างจุดสุดยอดและชิ้นส่วนแยกส่วนคุณรวมกลุ่มเฉดที่เกี่ยวข้องจำนวนมากไว้ใน 'เอฟเฟกต์' เมื่อคุณใช้เอฟเฟกต์คุณจะเลือก 'เทคนิค' (หรือวนซ้ำไปเรื่อย ๆ ) และจากนั้นแต่ละเทคนิคจะมีจำนวนรอบ คุณวนซ้ำผ่านแต่ละรอบที่เลือกจุดสุดยอดที่เกี่ยวข้องและ shader ส่วนและคุณวาดรูปทรงเรขาคณิต สิ่งที่ฉันอยากรู้เกี่ยวกับสิ่งที่คุณจะต้องผ่านหลายรอบเพื่อ? ฉันเข้าใจในช่วงต้นของ 3 มิติคุณมีหน่วยพื้นผิวเพียงหน่วยเดียวและจากนั้นคุณมี 2 และบ่อยครั้งที่ยังไม่เพียงพอหากคุณต้องการทำแผนที่สิ่งแวดล้อม แต่สำหรับอุปกรณ์ที่ทันสมัยแม้ในชั้นเรียนมือถือคุณสามารถลองพื้นผิว 8 ชิ้นขึ้นไปและทำการคำนวณการส่องสว่างได้มากเท่าที่คุณต้องการใน shader เดียว มีประสบการณ์มากขึ้นที่นี่สามารถนำเสนอตัวอย่างที่ใช้งานจริงของที่ต้องการการเรนเดอร์แบบมัลติพาสได้หรือไม่
9 xna  directx  shaders 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.