คำถามติดแท็ก fragment-shader

1
เหตุใดการเข้าถึงพื้นผิวจึงช้าลงมากเมื่อคำนวณพิกัดพื้นผิวในส่วนของส่วน
เมื่อใช้พื้นผิวใน GLSL วิธีที่ดีที่สุดคือการคำนวณพิกัดพื้นผิวสุดท้ายใน shader ที่จุดสุดยอดและส่งให้กับ shader ของชิ้นส่วนโดยใช้varyings ตัวอย่างที่มีการพลิกง่าย ๆ ในพิกัด y: // Vertex shader attribute vec2 texture; varying highp vec2 texCoord; // ... void main() { texCoord = vec2(texture.x, 1.0-texture.y); // ... } // Fragment shader varying highp vec2 textureCoordinates; uniform sampler2D tex; // ... void main() { highp vec4 …

1
การใช้ LUT เพื่อเพิ่มความเร็วในการเรียกใช้งานหนักสำหรับอุปกรณ์เคลื่อนที่
ฉันพยายามทำให้shader นี้ทำงานบน iDevice ที่เก่าแก่มากรวมถึง Android ในที่สุด แม้ว่าฉันจะลดรหัสให้เหลือ 2 ฟังก์ชันไซน์ต่อชิ้นส่วน Shader ก็ทำงานที่ประมาณ 20fps ฉันได้พิจารณานำใบไม้ออกมาจากหนังสือเทคนิคการแรเงาแบบเก่าและสร้างอาร์เรย์ที่เก็บค่าตรีโกณมิติที่กำหนดไว้ล่วงหน้าจำนวนหนึ่งและใช้วิธีเหล่านั้นเพื่อประมาณค่าส่วนแบ่ง ใน shader ฉันเชื่อมโยงด้านบนฉันได้จำลองแล้วว่าการปัดเศษค่าที่ส่งไปยังฟังก์ชันตรีโกณมิติยิ่งปล่อยเมาส์ (ขณะลง) ให้คุณภาพของ shader ยิ่งน้อยลง จริงๆแล้วมันค่อนข้างเท่ห์เพราะอยู่ใกล้กับทางด้านซ้ายมันดูเหมือนแตกต่างอย่างสิ้นเชิงและเท่ห์มาก ๆ อย่างไรก็ตามฉันมีสองประเด็นขัดแย้ง: ฉันไม่ทราบว่าวิธีที่มีประสิทธิภาพมากที่สุดในการมีอาร์เรย์ค่า 360 เช่นอะไรใน GLSL shader ค่าคงที่หรือสม่ำเสมอ? ฉันไม่สามารถหาวิธีใส่ตัวเลขในช่วงปกติได้ถ้าฉันต้องการมุมระหว่าง 0 ถึง 360 (ใช่ฉันรู้ว่า GPU ใช้เรเดียน) ฉันจะทำเช่นนั้น func range(float angle) { float temp = angle while (temp > 360) {temp …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.