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

OpenGL เป็นมาตรฐานกราฟิกและ API ซึ่งกำหนดเป้าหมายไปยังตลาดเดสก์ท็อปและเวิร์กสเตชัน มันถูกออกแบบมาให้ง่ายต่อการเร่งความเร็วด้วยฮาร์ดแวร์คอมพิวเตอร์เฉพาะและการใช้งานส่วนใหญ่จึงให้ประสิทธิภาพที่ดีขึ้นอย่างมากเมื่อเทียบกับการแสดงผลซอฟต์แวร์แบบดั้งเดิม ปัจจุบัน OpenGL ใช้สำหรับแอพพลิเคชั่นเช่นซอฟต์แวร์ CAD และเกมคอมพิวเตอร์ นอกจากนี้ยังเป็นแพลตฟอร์มข้าม มาตรฐาน OpenGL ควบคุมโดยกลุ่ม Khronos ซึ่งควบคุม OpenGL ES ด้วย

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

4
ทำไมพื้นที่คลิปใน OpenGL มี 4 มิติ
ฉันจะใช้สิ่งนี้เป็นข้อมูลอ้างอิงทั่วไป แต่ยิ่งฉันมีเอกสารและหนังสือออนไลน์ของเบราว์เซอร์มากเท่าไหร่ฉันก็ยิ่งเข้าใจน้อยลงเท่านั้น const float vertexPositions[] = { 0.75f, 0.75f, 0.0f, 1.0f, 0.75f, -0.75f, 0.0f, 1.0f, -0.75f, -0.75f, 0.0f, 1.0f, }; ในหนังสือออนไลน์เล่มนี้มีตัวอย่างเกี่ยวกับวิธีการวาดสวัสดีชาวโลกคนแรกและคนคลาสสิกสำหรับ OpenGL เกี่ยวกับการสร้างรูปสามเหลี่ยม โครงสร้างจุดสุดยอดสำหรับสามเหลี่ยมถูกประกาศตามที่ระบุในรหัสข้างต้น หนังสือในฐานะที่เป็นแหล่งข้อมูลอื่นเกี่ยวกับเรื่องนี้เน้นจุดที่คลิปอวกาศเป็นโครงสร้าง 4 มิติที่ใช้ในการตัดสินใจโดยทั่วไปว่าอะไรจะเป็น rasterized และแสดงผลไปที่หน้าจอ ที่นี่ฉันมีคำถามของฉัน: ฉันนึกภาพออกไม่ได้ใน 4D ฉันไม่คิดว่ามนุษย์จะทำอย่างนั้นได้ 4D คืออะไรสำหรับพื้นที่คลิปนี้ เอกสารที่มนุษย์อ่านได้มากที่สุดที่ฉันได้อ่านพูดเกี่ยวกับกล้องซึ่งเป็นเพียงนามธรรมของแนวคิดการตัดและฉันเข้าใจว่าปัญหาคือทำไมไม่ใช้แนวคิดของกล้องตั้งแต่แรก โครงสร้าง 3 มิติที่คุ้นเคย? ปัญหาเดียวของคอนเซปต์ของกล้องคือคุณต้องกำหนดผู้ที่คาดหวังในทางอื่นดังนั้นคุณต้องเพิ่มคำแถลงเกี่ยวกับประเภทของกล้องที่คุณต้องการ ฉันควรจะอ่านสิ่งนี้0.75f, 0.75f, 0.0f, 1.0fอย่างไร ทั้งหมดที่ฉันได้รับคือพวกมันคือค่าลอยตัวทั้งหมดและฉันได้ความหมายของ 3 ค่าแรกมันหมายความว่าอะไรสุดท้าย

1
OpenGL / GLSL: แสดงแผนที่เป็นคิวบ์หรือไม่
ฉันพยายามหาวิธีทำให้ฉากของฉันเป็นแผนที่ลูกบาศก์ ฉันติดอยู่กับเรื่องนี้และคิดว่าฉันจะขอความช่วยเหลือจากพวกคุณ ฉันใหม่กับ OpenGL และนี่เป็นครั้งแรกที่ฉันใช้ FBO ขณะนี้ฉันมีตัวอย่างการทำงานของการใช้ไฟล์ cubemap bmp และประเภทตัวอย่าง samplerCube ใน shader ที่ต่อกับ GL_TEXTURE1 ฉันไม่ได้เปลี่ยนรหัส shader เลย ฉันแค่เปลี่ยนความจริงที่ว่าฉันจะไม่เรียกฟังก์ชันที่โหลดไฟล์ cubemap bmp และพยายามใช้โค้ดด้านล่างเพื่อแสดงผลเป็น cubemap คุณสามารถเห็นด้านล่างว่าฉันยังแนบพื้นผิวอีกครั้งกับ GL_TEXTURE1 นี่คือเมื่อฉันตั้งเครื่องแบบ: glUniform1i(getUniLoc(myProg, "Cubemap"), 1); มันสามารถเข้าถึงได้ในส่วน Shader uniform samplerCube Cubemapของฉันผ่านทาง ฉันกำลังเรียกใช้ฟังก์ชันด้านล่างดังนี้: cubeMapTexture = renderToCubeMap(150, GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE); ตอนนี้ฉันรู้แล้วในลูปการวาดด้านล่างว่าฉันไม่ได้เปลี่ยนทิศทางมุมมองเพื่อดูแกน + x, -x, + y, -y, + z, …
13 opengl  glsl  cubemap 

5
การเรียนรู้ OpenGL: หนังสือสีแดงและสีน้ำเงินยังเกี่ยวข้องหรือไม่
ฉันเพิ่งซื้อหนังสือ Orange (GLSL) เมื่อเร็ว ๆ นี้และฉันสงสัยว่าการอ่านหนังสือสีแดงและสีน้ำเงินเป็นสิ่งสำคัญหรือไม่ ความคิดใด ๆ
13 opengl 

1
การทำแผนที่พื้นผิว UVW ทำงานอย่างไร
ฉันพยายามที่จะเข้าใจทฤษฎีทางคณิตศาสตร์ที่อยู่เบื้องหลังการทำแผนที่ UVW ทุกคนสามารถอธิบายได้ว่าการทำแผนที่ UVW ทำงานอย่างไร หรืออย่างน้อยก็ให้ฉันชี้?

1
วิธีการเลียนแบบกราฟิกของ PSX ด้วย OpenGL?
ฉันต้องการที่จะรู้ว่าตัวเลือก (หรือเฉดสี) ที่จะตั้งค่าเพื่อให้เกม OpenGL ของฉันดูเหมือนเกม Playstation 1 ฉันรู้ว่ามันอาจจะไม่สามารถทำได้ 100% เพราะ PSX ใช้โทรทัศน์และโทรทัศน์แสดงจอภาพแตกต่างกัน ขอบคุณ :)
13 opengl  emulation 

7
รูปแบบรูปภาพที่ดีที่สุด (เป็นที่นิยมที่สุด)
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา โอเคดังนั้นฉันใช้ C ++ กับ OpenGL และฉันจะสร้างตัวโหลดเพื่อโหลดพื้นผิวสำหรับเกม 3 มิติของฉัน (แต่พื้นผิวเป็นแบบ 2D) ฉันต้องการตัวเลือกของความโปร่งใสแม้ว่าฉันจะตัดสินใจไม่ใช้ก็ตาม ฉันต้องการคุณภาพที่ดีแม้ว่ามันจะไม่ได้เป็นสิ่งที่ดีที่สุด พวกคุณแนะนำอะไรสำหรับการจัดรูปแบบ (PNG, TGA และอื่น ๆ ) นอกจากนี้อาจทำให้เป็นสิ่งที่ง่ายต่อการสร้างตัวโหลดสำหรับ (ฉันจะไม่ใช้ตัวสร้างที่สร้างไว้แล้ว) และถ้าคุณมีลิงค์ / คำแนะนำเพื่อช่วยในการโหลดมันจะได้รับการชื่นชม
13 c++  opengl  textures 

1
วิธีการสร้างพื้นผิวที่โปร่งใสบางส่วน?
อรุณสวัสดิ์ StackOverflow ฉันมีปัญหาเล็กน้อยในขณะนี้เนื่องจากฉันไม่สามารถหาวิธีที่จะแสดงส่วนหนึ่งของพื้นผิวได้อย่างโปร่งใสด้วย openGL นี่คือการตั้งค่าของฉัน: ฉันมีรูปสี่เหลี่ยมที่แสดงถึงผนังปกคลุมด้วยพื้นผิวนี้ (แปลงเป็น PNG สำหรับวัตถุประสงค์ในการอัปโหลด) เห็นได้ชัดว่าฉันต้องการให้ผนังทึบแสงยกเว้นบานกระจก มีระนาบอื่นด้านหลังกำแพงซึ่งควรจะแสดงภูมิทัศน์ ฉันต้องการที่จะเห็นภูมิทัศน์จากด้านหลังหน้าต่าง แต่ละพื้นผิวเป็น TGA พร้อมช่องอัลฟา "แนวนอน" จะแสดงก่อนจากนั้นจึงติดผนัง ฉันคิดว่ามันจะเพียงพอที่จะบรรลุผลนี้ แต่เห็นได้ชัดว่าไม่ใช่กรณี ส่วนของหน้าต่างที่ควรจะโปร่งใสคือสีดำและภูมิทัศน์จะปรากฏเฉพาะเมื่อฉันเคลื่อนผ่านกำแพง ฉันพยายามที่จะเล่นซอกับ GLBlendFunc () หลังจากเปิดใช้งานมัน แต่มันดูเหมือนจะไม่หลอกลวง ฉันลืมขั้นตอนสำคัญหรือไม่ ขอขอบคุณ :)

3
OpenGL 1.x และ 2.x แตกต่างกันอย่างไร?
มีบทช่วยสอนที่ดีที่แสดงความแตกต่างระหว่าง OpenGL 1 * และ 2 * หรือไม่? มันจะมีประโยชน์มากหากรู้ว่าฟังก์ชั่นใดที่ฉันไม่ควรเรียก (เช่น glBegin () ฉันถือว่า)
13 opengl 

4
รับพื้นผิวจาก renderbuffer ใน OpenGL หรือไม่?
ฉันมี renderbuffer (DepthStencil) ใน FBO และฉันต้องการรับพื้นผิวจากมัน ฉันไม่สามารถมีทั้งพื้นผิว DepthComponent และ DepthStencil renderbuffer ใน FBO ได้ดังนั้นฉันต้องการวิธีในการแปลง renderbuffer เป็นพื้นผิว DepthComponent หลังจากที่ฉันใช้เพื่อใช้ในภายหลัง ฉันได้ลองเทคนิคมากมายเพื่อดึงองค์ประกอบความลึกจาก renderbuffer มาหลายสัปดาห์ แต่ฉันมักจะออกมาพร้อมกับขยะ สิ่งที่ฉันต้องการในตอนท้ายคือพื้นผิวเดียวกับที่ฉันได้รับจาก FBO หากฉันไม่ได้ใช้ renderbuffer ทุกคนสามารถโพสต์คำแนะนำที่ครอบคลุมหรือรหัสที่ครอบคลุมการดำเนินงานที่เรียบง่ายนี้ดูเหมือนว่า? แก้ไข: เชื่อมโยงไปยังรุ่นแยกของรหัส http://dl.dropbox.com/u/9279501/fbo.cs ผลของความลึกของฟิลด์ + FBO - ไม่มีความลึก (!) http://i.stack.imgur.com/Hj9Oe.jpg หน้าจอที่ไม่มีความชัดลึกของสนามเอฟเฟกต์ + FBO - ทำงานได้ลึกดี http://i.stack.imgur.com/boOm1.jpg
13 opengl 

1
ฉันจะป้องกัน viewport ไม่ให้ยืด / บิดเบี้ยวได้อย่างไร
โดยทั่วไปฉันต้องการทราบว่าฉันสามารถลบความบิดเบี้ยวหรือการยืดภาพที่แสดงเมื่อขนาดวิวพอร์ต / หน้าต่างเปลี่ยนไปอย่างไร ภาพต่อไปนี้แสดงให้เห็นถึงการบิดเบือน / การยืดที่ฉันกำลังพูดถึง: รูปภาพต้นฉบับ (หน้าต่างสี่เหลี่ยม) ภาพบิดเบี้ยว / ยืดออก (หน้าต่างรูปสี่เหลี่ยมผืนผ้า) ตามหลักการแล้วภาพที่สองควรแสดงทรงกลมโดยไม่ต้องยืดออกในแนวนอนและจะทำให้ฉากกับผู้ใช้มากขึ้นเพื่ออธิบายขนาดหน้าต่างที่ใหญ่ขึ้น สิ่งนี้สามารถทำได้? ฉันทำงานกับ OpenGL เพื่อแสดงภาพและฉันใช้ประโยชน์จากการคาดการณ์มุมมองผ่านการโทร: glMatrixMode(GL_PROJECTION) glLoadIdentity() gluPerspective(60, window.width/window.height, 0.01f, 100.0f) อัตราส่วนภาพwidth/heightเป็นไปตามเอกสาร / บทช่วยสอนทั้งหมดที่ฉันพบดังนั้นฉันไม่คาดหวังว่ามันจะไม่ถูกต้อง อย่างไรก็ตามความสงสัยของฉันคือมันส่งผลกระทบต่อปัญหาการยืด หลังจากคิดแล้ว ตามจริงแล้วเมื่อฉันคิดเกี่ยวกับประเด็นนี้มากขึ้นฉันก็จะเชื่อว่าการแก้ปัญหานั้นเกี่ยวข้องกับความสัมพันธ์ที่เป็นสัดส่วนโดยตรงระหว่างมุมมองในทิศทาง y กับทิศทาง fovy และอัตราส่วนภาพ การใช้ภาพด้านบนเป็นข้อมูลอ้างอิงหากความกว้างเพิ่มขึ้น (ก่อให้เกิดการยืดในแนวนอน) ดูเหมือนว่าน่าจะเป็นไปได้มากที่มุม fovy ต้องเพิ่มขึ้นเพื่อทำให้เกิดการยืดแนวตั้งที่ 'แก้ไข' สัดส่วนของภาพที่แสดงผล ในทำนองเดียวกันการลดความกว้างต้องลดลงในมุม fovy ปรับปรุง: ดังนั้นหลังจากตรวจสอบเรื่องนี้ต่อไปฉันได้ตัดสินใจที่จะเปลี่ยนวิธีการตั้งค่า frustum การดูเช่นนี้: gluPerspective(60 * (float)window.width/window.height, (float)window.width/window.height, …

4
ทำไมคุณถึงใช้การเรนเดอร์ซอฟต์แวร์ผ่านการเรนเดอร์ฮาร์ดแวร์ในวันนี้
ตรงข้ามกับการแสดงผล CPU หรือซอฟต์แวร์ฉันถือว่า? โดยทั่วไปแล้วการแสดงผลในปัจจุบันทั้งหมดจะเป็นไปตาม GPU ใช่ไหมว่าคุณจะใช้ OpenGL หรือ Direct X มีคนให้ข้อมูลฉันที่นี่ไม่พบคำตอบที่เหมาะสมหรือไม่

4
มัลติเพลเยอร์ทำงานใน OpenGL อย่างไร
ใน Direct3D นั้น shader แบบหลายตัวนั้นใช้งานง่ายเพราะคุณสามารถกำหนด pass ภายในโปรแกรมได้อย่างแท้จริง ใน OpenGL ดูเหมือนว่าจะซับซ้อนกว่านี้เล็กน้อยเนื่องจากเป็นไปได้ที่จะให้โปรแกรม shader เป็นจุดสุดยอดรูปทรงเรขาคณิตและส่วนที่แตกต่างกันตามที่คุณต้องการ ตัวอย่างที่เป็นที่นิยมของเครื่องมัลติพลาสเดอร์คือเครื่องจิ้มอเนกประสงค์ การผ่านหนึ่งครั้งจะมีเอฟเฟ็กต์การแรเงาที่เกิดขึ้นจริงและอีกอันจะสร้างโครงร่าง ถ้าฉันมีสองจุดยอด "cel.vert" และ "outline.vert" และสองชิ้นส่วน "cel.frag" และ "outline.frag" (คล้ายกับที่คุณทำใน HLSL) ฉันจะทำได้อย่างไร รวมเข้าด้วยกันเพื่อสร้าง shader toon แบบเต็ม? ฉันไม่ต้องการให้คุณพูดว่าสามารถใช้รูปทรงเรขาคณิตสำหรับเรื่องนี้ได้เพราะฉันแค่อยากรู้ทฤษฎีที่อยู่เบื้องหลัง GLSL หลายตัว;)
13 opengl  shaders  glsl 

3
พยายามที่จะเข้าใจแสงบน OpenGL วิธีการจำลองแสงดวงอาทิตย์ที่เหมือนจริง?
ฉันไม่รู้ว่าฉันกำลังทำอะไรผิดพลาดหรือไม่ทำอะไรเลย แต่ฉันต้องการจำลองแสงของดวงอาทิตย์เช่นในวันแดดจ้า เมื่อวัตถุหันหน้าไปทางแสงไฟส่องสว่างและไม่มีปัญหาเกิดขึ้น ถ้าฉันเดินไปรอบ ๆ วัตถุแล้วมองกลับมันมืด มันไม่มืดมากเพราะฉันใช้GL_AMBIENTแต่มันมืดเกินไปสำหรับวันที่แดดจัด ถ้าฉันเพิ่มมูลค่ามันจะไม่ดูดีไปกว่านี้เพราะด้านของวัตถุที่หันหน้าไปทางแสงจะสว่างเกินไป และยังมีอีกปัญหาที่น่ารำคาญกับแสงโดยรอบเมื่อมองที่ด้านหลังของวัตถุฉันไม่เห็นรูปร่างใด ๆ เพียงสีธรรมดา ยากที่จะอธิบายนี่คือภาพบางส่วน: หน้าวัตถุ: http://i.stack.imgur.com/YW53X.png กลับด้านวัตถุ: http://i.stack.imgur.com/Qufha.png อย่างที่คุณเห็นได้ง่ายด้านหน้าด้านหน้าดูดีคุณสามารถเห็นรูปร่างของสิ่งแดงนั้น ด้านหลังมันธรรมดาคุณไม่สามารถเห็นรูปร่างเดียวกัน ตอนนี้ฉันรู้แล้วว่าฉันกำลังดูที่ด้านหลังของวัตถุและฉันกำลังมองไปในทิศทางของแสงและมันควรจะมืดกว่าด้านหน้า แต่มันก็ไม่ควรดูธรรมดาแบบนี้ นั่นไม่ใช่สิ่งที่เราเห็นเมื่อเปรียบเทียบกับแสงของดวงอาทิตย์ที่มองวัตถุบางอย่างเราเห็นว่าวัตถุนั้นมีรูปร่าง ฉันจะมีผลเหมือนกัน (หรือคล้ายกัน) ใน OpenGL ได้อย่างไร ปัจจุบันแสงของฉันถูกกำหนดเช่นนี้: float posLight0[4] = {-1.0f, 1.0f, 1.0f, 0.0f}; float ambLight0[4] = {0.5f, 0.5f, 0.5f, 0.5f}; glLightfv(GL_LIGHT0, GL_POSITION, posLight0); glLightfv(GL_LIGHT0, GL_AMBIENT, ambLight0);
13 opengl  lighting 

4
ความแตกต่างระหว่าง“ บัฟเฟอร์” และ“ อาร์เรย์” ใน OpenGL หรือไม่
เมื่อฉันอ่าน doc บน webGL หรือ OpenGL ฉันสามารถเห็นรูปแบบบางอย่างในวิธีการใช้ชื่อฟังก์ชั่นและวัตถุ แต่ฉันไม่เข้าใจความแตกต่างระหว่างวัตถุบัฟเฟอร์และอาร์เรย์ มี "วัตถุบัฟเฟอร์จุดสุดยอด", "วัตถุอาร์เรย์จุดสุดยอด" และแม้กระทั่ง "บัฟเฟอร์อาร์เรย์" หรือ "arraybuffer" บางชนิด ในบริบท OpenGL บางสิ่งเมื่อเป็น "อาเรย์" และเมื่อมันควรจะเรียกว่า "บัฟเฟอร์" แทน?
12 opengl  webgl 

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