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

ชุดย่อยของกราฟิก OpenGL 3D API ออกแบบมาสำหรับอุปกรณ์ฝังตัวเช่นโทรศัพท์มือถือ

3
วิธีซ่อนโครงร่างหลังการประมวลผลเมื่อ / ตำแหน่งที่ซ่อนตาข่าย
ฉันกำลังทำงานเกี่ยวกับการตั้งค่าเค้าร่างที่ใช้งานอยู่ในเอนจิ้น 3 มิติของฉันเอฟเฟกต์ไฮไลท์สำหรับตัวละคร 3 มิติที่เลือกหรือฉากในหน้าจอ หลังจากทำงานกับ stencil buffer และรับผลลัพธ์ที่น่าพอใจ (ปัญหาเกี่ยวกับรูปร่างเว้าความหนาของร่างเนื่องจากระยะห่างจากกล้องและความไม่สอดคล้องระหว่างเดสก์ท็อปและแล็ปท็อปของฉัน) ฉันเปลี่ยนไปใช้การตรวจจับขอบและการสุ่มเฟรมบัฟเฟอร์ ค่อนข้างพอใจกับ อย่างไรก็ตามฉันไม่สามารถซ่อนเค้าร่างเมื่อตาข่ายที่เลือกอยู่ด้านหลังตาข่ายอื่น สิ่งนี้สมเหตุสมผลสำหรับกระบวนการของฉันเนื่องจากฉันเพียงแค่สร้างโครงร่าง 2 มิติจากเฟรมบัฟเฟอร์หลังจากเรนเดอร์ส่วนที่เหลือของฉาก การจับภาพหน้าจอสองรายการของฉันอยู่ด้านล่าง ที่แรกก็คือเค้าร่าง "ดี" ที่สองคือที่เห็นร่างอยู่เหนือตาข่ายที่บล็อกแหล่งที่มาเค้าร่าง กระบวนการเรนเดอร์ทำงานดังนี้: 1) วาดเฉพาะอัลฟาของตาข่ายที่ไฮไลต์เพื่อบันทึกภาพเงาดำในบัฟเฟอร์เฟรม (framebuffer1) 2) ส่ง texture จาก framebuffer1 ไปยัง shader ตัวที่สองซึ่งทำการตรวจจับขอบ จับขอบใน framebuffer2 3) แสดงฉากทั้งหมด 4) แสดงพื้นผิวจาก framebuffer2 ที่ด้านบนของฉาก ฉันมีแนวคิดเล็กน้อยเกี่ยวกับวิธีการทำให้สำเร็จและหวังว่าจะได้รับคำติชมเกี่ยวกับความถูกต้องของพวกเขาหรือวิธีการที่ง่ายกว่าหรือดีกว่า ก่อนอื่นฉันคิดว่าจะทำให้ฉากทั้งหมดเป็นบัฟเฟอร์เฟรมและเก็บเงาที่มองเห็นได้ของตาข่ายที่ถูกไฮไลต์ในช่องอัลฟา (สีขาวทั้งหมดจะบันทึกที่ที่ตาข่ายที่ไฮไลต์มองเห็น) จากนั้นฉันจะทำการตรวจจับขอบบนช่องอัลฟาทำการเรนเดอร์เฟรมบัฟเฟอร์ฉากแล้วทำการเรนเดอร์ขอบด้านบน ส่งผลให้บางสิ่งเช่นนี้: เพื่อให้บรรลุผลนี้ฉันคิดว่าการตั้งค่ากำหนดเฉพาะในระหว่างการส่งเรนเดอร์ของวัตถุที่ไฮไลต์ที่จะวาดสีดำทั้งหมดในอัลฟาสำหรับพิกเซลที่มองเห็นได้ แนวคิดที่สองของฉันคือการใช้กระบวนการเรนเดอร์ปัจจุบันตามที่ระบุไว้ข้างต้น แต่ยังเก็บพิกัด X, Y …

1
OpenGL ES สร้างเอฟเฟกต์ stencil โดยใช้พื้นผิว
สิ่งแวดล้อม นี่คือสภาพแวดล้อมที่ฉันกำลังทำงานอยู่: OpenGL ES 2.0 iPhone Simulator และ iPhone 4 iMac 27 "โดยใช้ NVIDIA GeForce GTX 680MX 2048 MB หวังว่าจะช่วย ปัญหา เคยค้นหาสูงและต่ำจากหลายแหล่งและหลายไซต์รวมถึง Stackoverflow แต่ยังไม่มีเอฟเฟกต์ stencil ที่ใช้งานได้ สิ่งที่ฉันมีคือ: สิ่งที่สีดำไม่ใช่รูปหลายเหลี่ยมแต่พื้นผิวถูกวาดลงบนสี่เหลี่ยมรูปสี่เหลี่ยมที่มีความกว้างและความสูงเท่ากับภาพพื้นหลัง ฉันกำลังพยายามทำเอฟเฟกต์ stencil ที่พื้นหลังและผู้ชายสีเหลืองตัวเล็ก ๆ ควรมองเห็นได้ถ้ามันอยู่ในพื้นผิวของสีดำ ในส่วนของฉันฉันมีสิ่งนี้: varying lowp vec4 destinationColor; varying lowp vec2 TexCoordOut; uniform sampler2D Texture; uniform highp float TexScale; void …

2
การใช้แผนที่ / ภูมิประเทศแบบเรียงต่อกันที่มีความสูงแตกต่างกันของแผ่นกระเบื้องข้างเคียง
Ahoy! ฉันกำลังมองหาข้อมูลบางอย่างเกี่ยวกับแผนที่ย่อยหรือค่อนข้างที่เรียกว่าแผนที่ประเภทเฉพาะ ฉันสนใจชนิดของการใช้งานที่ใช้ในเกม tycoon หรือเกมการขนส่งที่มีผู้ประกอบการและได้รับการดูลงในภูมิประเทศเวกเตอร์ฟิลด์และภูมิประเทศแผนที่ความสูง แต่ฉันไม่แน่ใจว่าพวกเขาเหมาะสมกับสิ่งที่ฉันต้องการ พัฒนา. มันเป็นการยากที่จะหาข้อมูลที่เหมาะสมเพราะคนส่วนใหญ่อ้างถึงเป็นแผนที่เรียงภาพสามมิติ แต่ฉันต้องการสร้างบางสิ่งในรูปแบบสามมิติด้วยมุมมองแบบออโธกราฟแบบคงที่ ฉันเข้าใจว่าที่เก็บข้อมูลพื้นฐานของแผนที่ย่อยไม่มีส่วนเกี่ยวข้องกับวิธีการแสดงผล แต่ฉันไม่ต้องการสร้างแผนที่ย่อยแบบสองมิติเช่นเกมโปเกมอน / เกมเซลด้าของโรงเรียนเก่ามากขึ้นตามแนวของ diablo ที่มีความสามารถในการรวม หน้าผาที่ยื่นออกมาและภูมิประเทศที่ลาดชัน ฉันแค่พยายามค้นหาคำศัพท์ที่เหมาะสมเพื่อค้นหา google และ stackoverflow เพื่อหาแหล่งข้อมูลเพื่อช่วยฉันตัดสินใจเลือกเส้นทางที่จะดำเนินการต่อไป จนถึงตอนนี้ฉันได้จัดการแผนที่แบบพื้นฐานโดยไม่ใช้ส่วนประกอบความสูง / y ที่เก็บไว้ใน VBO และแสดงผลเป็นแบบโครงลวด สิ่งนี้ดูดีมาก แต่ฉันคิดว่าฉันจะพบปัญหาเมื่อพยายามใช้จุดสุดยอดเดียวเพื่อสร้างหน้าผาและเนินเขาโดยไม่กระทบกับกระเบื้องข้างเคียง มีการใช้งานเฉพาะประเภทที่ฉันควรพิจารณาหรือไม่ ฉันคิดว่าฉันแคร็กมันเมื่อฉันพบว่ามีจำนวนที่ยุติธรรมถ้าข้อมูลในพื้นที่ทุ่งเวกเตอร์ แต่ฉันไม่แน่ใจว่าสิ่งนี้จะให้ผลลัพธ์ที่ถูกต้องเช่นกัน หากใครก็ตามที่สามารถปลดปล่อยแสงนี้ให้ฉันได้โปรดความช่วยเหลือจะได้รับการชื่นชมอย่างมาก :) ปรับปรุง ฉันได้รวมรูปภาพเพื่อการชี้แจงเพิ่มเติมเกี่ยวกับสิ่งที่ฉันต้องการบรรลุ: ภาพที่ยืมมาจากวิธีสร้างภาพวาดสามมิติแบบเอียง (สูง) ภาพนี้แสดงประเภทของภูมิประเทศที่ฉันต้องการสร้าง แต่ไม่รวมถึง "หน้าผา" หรือภูมิประเทศที่ยื่นออกมาที่ฉันสนใจในการสร้างแบบจำลอง อย่างไรก็ตามจะเพิ่มคำถามอื่นอีกสองสามข้อที่ฉันไม่ได้พิจารณาคือ 'เลเยอร์' เช่นน้ำ (มุมบนซ้ายของภาพ) จะถูกจัดการอย่างไรเพื่อรวมพื้นดินที่มองเห็นใต้น้ำ "ขอบ" ของแผนที่จะได้รับการจัดเตรียมอย่างไรเพื่อที่ว่าโลก / …

1
ส่วนประกอบของ gl_TexCoord [0] หมายถึงอะไร?
อะไรคือความแตกต่างระหว่างgl_TexCoord[0].s, gl_TexCoord[0].t gl_TexCoord[0].pและgl_TexCoord[0].x, gl_TexCoord[0].y gl_TexCoord[0].z? ฉันเข้าใจว่าgl_TexCoord[0].x, gl_TexCoord[0].y gl_TexCoord[0].zพิกัดพิกเซลเป็นอย่างไร แต่gl_TexCoord[0].s, gl_TexCoord[0].t gl_TexCoord[0].pฉันต้องใช้มันหมายความว่าอะไรและที่ไหน?

6
OpenGL ES 2.0: Repository ของ Quality Shaders [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ฉันขอถามได้ไหมว่าจะแนะนำที่เก็บข้อมูลของจุดยอด OpenGL (OpenGL ES 2.0) ที่มีคุณภาพสูงและชิ้นส่วนที่แตกออกเป็นชิ้นๆ ได้ไหม ฉันกำลังมองหาพิกเซลเชดเดอร์ ligting (เช่นพงษ์ ) และ simmilar มันจะเป็นการดีที่ได้เห็นพวกเขามากขึ้นเพื่อให้สามารถเลือกระหว่างคุณภาพเทียบกับประสิทธิภาพของ shader

4
คุณสมบัติที่ขาดหายไปจาก WebGL และ OpenGL ES
ฉันเริ่มใช้ WebGL และรู้สึกยินดีกับความง่ายในการใช้ประโยชน์จากประสบการณ์ OpenGL ของฉัน (และโดยการขยาย OpenGL ES) อย่างไรก็ตามความเข้าใจของฉันเป็นดังนี้: OpenGL ES เป็นส่วนหนึ่งของ OpenGL WebGL เป็นส่วนหนึ่งของ OpenGL ES ถูกต้องหรือไม่สำหรับทั้งสองกรณี? ถ้าเป็นเช่นนั้นมีแหล่งข้อมูลสำหรับการตรวจสอบคุณสมบัติที่หายไปหรือไม่ ตัวอย่างเช่นหนึ่งคุณลักษณะที่ขาดหายไปที่น่าสังเกตคือและglPushMatrix glPopMatrixฉันไม่เห็นสิ่งเหล่านั้นใน WebGL แต่ในการค้นหาของฉันฉันไม่พบพวกเขาอ้างอิงในเนื้อหา OpenGL ES

1
พื้นผิวของแผ่นสไปรต์ยกขอบของพื้นผิวที่อยู่ติดกัน
ฉันมีชุดสไปรต์แบบกำหนดเอง (openGL 2.0) ซึ่งใช้แผ่นงานสไปรต์ง่าย ๆ (พื้นผิวของฉันถูกจัดเรียงในแนวนอนติดกัน) ตัวอย่างเช่นนี่คือแผ่นทดสอบสไปรต์ที่มีพื้นผิวที่เรียบง่าย 2 แบบ: ตอนนี้สิ่งที่ฉันทำเมื่อสร้างวัตถุ openGL sprite ของฉันคือการระบุจำนวนเฟรมทั้งหมดในแอตลาสและเมื่อวาดให้ระบุเฟรมที่ฉันต้องการวาด จากนั้นจะหาตำแหน่งที่จะจับพื้นผิวจาก: การหารหมายเลขเฟรมที่ต้องการด้วยจำนวนเฟรมทั้งหมด (เพื่อรับค่าพิกัดซ้าย) จากนั้นทำการดำน้ำ 1 ตามจำนวนเฟรมทั้งหมดและเพิ่มผลลัพธ์ลงในพิกัดด้านซ้ายที่คำนวณข้างต้น ดูเหมือนว่าจะใช้งานได้ แต่บางครั้งฉันก็มีปัญหา พูดเช่นฉันต้องการวาด X ด้านล่างและฉันได้รับ ........... ฉันเคยได้ยินเกี่ยวกับการใส่ 'padding' ของ 1 px ระหว่างแต่ละพื้นผิว แต่บางคนสามารถอธิบายได้อย่างแม่นยำว่ามันทำงานอย่างไร ฉันหมายความว่าถ้าฉันทำสิ่งนี้มันจะสลัดการคำนวณออกไปเพื่อให้ได้พื้นผิว หากฉันรวมการซ้อนทับในพื้นผิวที่หยิบง่าย (ดังนั้นเทพดาจะถูกวาดด้วยเส้นขอบที่ว่างเปล่า) ดังนั้นถ้าเป็นเช่นนั้นจะทำให้เกิดปัญหากับการตรวจจับการชนกันหรือไม่ (เช่นสไปรต์อาจปรากฏขึ้นเพื่อชนกันเมื่อใช้กล่องที่มีขอบเขตเมื่อชิ้นส่วนโปร่งใสชนกัน) จะขอบคุณถ้ามีคนอธิบาย

5
ทำไมฉันไม่สามารถใช้โอเปอเรเตอร์ '> =' กับ Vector3s ได้
ฉันพยายามที่จะได้รับรูปสี่เหลี่ยมผืนผ้าย้ายไปมาระหว่างสองตำแหน่งที่ผมพูดถึงและ_positionA ทั้งสองประเภท_positionB Vector3สี่เหลี่ยมผืนผ้าเคลื่อนไหวได้ดี อย่างไรก็ตามเมื่อมันมาถึง_positionBมันจะไม่เคลื่อนที่ในทิศทางตรงกันข้ามเหมือนอย่างที่ควร ฉันกลับไปที่โค้ดเพื่อดู ฉันมาถึงข้อสรุปว่าเป็นวัตถุย้ายที่ifงบในรหัสพลาดเฟรมซึ่งในตำแหน่ง rects _positionBเท่ากับ ฉันตัดสินใจที่จะปรับเปลี่ยนรหัสไปในทิศทางที่ตรงกันข้ามถ้าตำแหน่ง rects คือมากกว่าหรือเท่ากับ _positionBรหัสของฉันไม่ยาวเกินไปดังนั้นฉันจะแสดงด้านล่าง: using UnityEngine; using System.Collections; public class Rectangle : MonoBehaviour { private Vector3 _positionA = new Vector3(-0.97f, -4.28f); //Start position private Vector3 _positionB = new Vector3(11.87f, -4.28f); //End position private Transform _rect_tfm; private bool _atPosA = false, _atPosB = …
9 unity  c#  vector  mathematics  vector  matrix  unity  c#  transformation  java  3d  terrain-rendering  shading  ios  opengl-es  opengl  rendering  optimization  python  scripting  minecraft-modding  modding  pc  3d-meshes  mesh  culling  point-cloud  networking  interpolation  mathematics  game-design  ai  game-mechanics  animation  unreal-4  skeletal-animation  3dsmax  unity  c#  3d  opengl  c++  textures  unity  ide  cocos2d  cocos2d-x-js  unity  c#  mono  il2cpp  c++  game-loop  timer  linux  flash  actionscript-3  java  glsl  c++  vector  entity-component  c++  directx11  windows  visual-studio  libgdx  mouse  unity  c#  architecture  storage  unity  c#  rotation  coordinates  quaternion  vrpn  movement  vector  unreal-4  unity  shaders  unity  gui  text  bug  shooter  3d  animation  rendering  voxels  c++  mmo  multithreading  linux  textures  procedural-generation  terrain-rendering  multiplayer  mmo  game-state  java  android  libgdx  opengl  procedural-generation  unity  gui  3d  animation  tools  geometry-shader  mobile  advertisements  unity  c#  animation  scripting  unity  animation  unityscript  coroutines  unity  shaders  lighting  camera 

3
ใช้เวลานานแค่ไหนสำหรับ OpenGL ในการอัพเดทหน้าจอจริง?
ฉันมีแอปทดสอบ OpenGL แบบง่าย ๆ ใน C ซึ่งดึงดูดสิ่งต่าง ๆ เพื่อตอบสนองต่อการป้อนข้อมูลสำคัญ (Mesa 8.0.4, ลองกับ Mesa-EGL และกับ GLFW, Ubuntu 12.04LTS บนพีซีที่ใช้ NVIDIA GTX650) การดึงค่อนข้างง่าย / เร็ว (หมุนประเภทของสิ่งของ) รหัสการทดสอบของฉันไม่ได้ จำกัด จำนวนการจงใจอย่างรอบคอบ แต่อย่างใดมันมีลักษณะดังนี้: while (true) { draw(); swap_buffers(); } ฉันหมดเวลาอย่างระมัดระวังและฉันพบว่าเวลาจากการโทรครั้งเดียวeglSwapBuffers()(หรือglfwSwapBuffersสิ่งเดียวกัน) ต่อไปคือ ~ 16.6 มิลลิวินาที เวลาจากหลังจากการโทรถึงeglSwapBuffers()ก่อนการโทรครั้งถัดไปจะน้อยกว่านั้นเล็กน้อยถึงแม้ว่าสิ่งที่ถูกวาดจะง่ายมาก เวลาที่การแลกเปลี่ยนบัฟเฟอร์ใช้เวลาน้อยกว่า 1 มิลลิวินาที อย่างไรก็ตามเวลาจากแอปเปลี่ยนสิ่งที่มันวาดในการตอบสนองต่อการกดปุ่มเพื่อการเปลี่ยนแปลงที่เกิดขึ้นจริงบนหน้าจอคือ> 150ms (ประมาณ 8-9 เฟรมมูลค่า) วัดจากการบันทึกกล้องของหน้าจอและคีย์บอร์ดที่ 60fps …

2
ใช้สองเฉดสีแทนหนึ่งด้วยคำสั่ง IF
ฉันทำงานเกี่ยวกับการโอนย้ายแหล่ง OpenGL ของ ES 1.1 ที่ค่อนข้างใหญ่ไปเป็น ES 2.0 ใน OpenGL ES 2.0 (ซึ่งหมายความว่าทุกอย่างใช้ shaders) ฉันต้องการวาดกาน้ำชาสามครั้ง คนแรกที่มีสีสม่ำเสมอ (AlCa เก่า glColor4f) ตัวที่สองด้วยสีต่อจุดสุดยอด (กาน้ำชามีสีของจุดสุดยอดเช่นกัน) อันที่สามที่มีพื้นผิวต่อยอด และอาจเป็นอันที่สี่ที่มีทั้งพื้นผิวและสีต่อจุด แล้วก็อาจจะเป็นอันดับที่ 5 ที่มีบรรทัดฐานเช่นกัน .. มีสองทางเลือกที่ฉันมีกับการนำไปปฏิบัติเท่าที่ฉันรู้ สิ่งแรกคือสร้าง shader ที่รองรับทั้งหมดข้างต้นด้วยชุดที่กำหนดให้เปลี่ยนพฤติกรรม (เช่นใช้ชุดสีเอกพจน์หรือชุดสีต่อจุดสุดยอด) ตัวเลือกที่สองคือการสร้าง shader ที่แตกต่างกันสำหรับแต่ละสถานการณ์ ด้วยการประมวลผลล่วงหน้าของ Shader ที่กำหนดเองมันไม่ซับซ้อนที่ต้องทำ แต่สิ่งที่น่ากังวลคือค่าใช้จ่ายด้านประสิทธิภาพในการสลับเฉดสีระหว่างวัตถุรูปวาด ฉันอ่านมาแล้วว่ามันไม่เล็กเลย ฉันหมายความว่าวิธีที่ดีที่สุดในการทำสิ่งนี้คือการสร้างทั้งสองอย่างและวัดผล แต่ก็เป็นการดีที่จะได้ยินอินพุตใด ๆ
9 opengl-es  glsl 

1
การเพิ่มประสิทธิภาพการทำงานของเครื่องแยกชิ้นส่วนหนัก
ฉันต้องการความช่วยเหลือในการเพิ่มประสิทธิภาพชุดของเฉดสีต่อไปนี้: เวอร์เท็กซ์: precision mediump float; uniform vec2 rubyTextureSize; attribute vec4 vPosition; attribute vec2 a_TexCoordinate; varying vec2 tc; void main() { gl_Position = vPosition; tc = a_TexCoordinate; } Fragment: precision mediump float; /* Uniforms - rubyTexture: texture sampler - rubyTextureSize: size of the texture before rendering */ uniform sampler2D rubyTexture; uniform …

1
gluLookAt ทำงานอย่างไร
จากความเข้าใจของฉัน gluLookAt( eye_x, eye_y, eye_z, center_x, center_y, center_z, up_x, up_y, up_z ); เทียบเท่ากับ: glRotatef(B, 0.0, 0.0, 1.0); glRotatef(A, wx, wy, wz); glTranslatef(-eye_x, -eye_y, -eye_z); แต่เมื่อฉันพิมพ์ModelViewเมทริกซ์การเรียกเพื่อglTranslatef()ดูเหมือนจะทำงานไม่ถูกต้อง นี่คือข้อมูลโค้ด: #include <stdlib.h> #include <stdio.h> #include <GL/glut.h> #include <iomanip> #include <iostream> #include <string> using namespace std; static const int Rx = 0; static const int …

3
มันมีมูลค่าการสนับสนุนอุปกรณ์ iOS 3.x หรือ iPhone 3G อีกต่อไปเมื่อพัฒนาเกม?
มันยังคงคุ้มค่าหรือไม่สำหรับนักพัฒนาเกมในการลองและสนับสนุนอุปกรณ์รุ่นเก่า: iPhone 3G และรุ่นก่อนหน้าหรือเพื่อรองรับระบบปฏิบัติการรุ่นเก่า: iOS 3.x และรุ่นก่อนหน้า? หรือแนะนำให้ใช้งาน OpenGL ES 2.0 เป็น iPhone 3GS ขึ้นไปหรือไม่ คุณรู้หรือไม่ว่าร้อยละของผู้ใช้ยังคงใช้อุปกรณ์ / ระบบปฏิบัติการรุ่นก่อนหน้าเหล่านั้น
9 iphone  opengl-es  ios 

1
ผสมผสานโหมดใน Cocos2D ด้วย glBlendFunc
เราพยายามทำซ้ำโหมดการผสมที่พบบ่อยที่สุดที่มีอยู่ใน Photoshop และ Quartz 2D แต่เราได้มากับ 3 เท่านั้นและหลังจากการค้นหาออนไลน์นาน ๆ สำหรับผู้ที่สนใจนี่คือ: คูณ = GL_DST_COLOR, GL_ONE_MINUS_SRC_ALPHA หน้าจอ = GL_MINUS_DST_COLOR, GL_ONE Linear Dodge = GL_ONE, GL_ONE คุณสามารถลองโหมดเหล่านี้และโหมดอื่น ๆ แบบออนไลน์ได้ที่เว็บไซต์ที่มีประโยชน์มากนี้: http://www.andersriggelsen.dk/glblendfunc.php ตอนนี้เราจะขอบคุณถ้าใครสามารถให้โหมดการผสมเพิ่มเติมที่เราสามารถสร้างขึ้นใหม่ใน Cocos2D เนื่องจากประสบการณ์ Open GL ของเรานั้น จำกัด จริงๆ ขอบคุณล่วงหน้า! Argiris

3
สั่งความโปร่งใสอิสระในระบบอนุภาค
ฉันกำลังเขียนระบบอนุภาคและต้องการหาเคล็ดลับในการผสมอัลฟาที่เหมาะสมโดยไม่ต้องคัดแยกอนุภาคเพราะ: แต่ละอนุภาคเป็นจุดสไปรต์ในตาข่ายเดียวและฉันไม่สามารถใช้ความสามารถกราฟฉากเพื่อจัดเรียงโหนดโปร่งใส แม้ว่าโหนดระบบควรจะถูกจัดเรียงอย่างเหมาะสม ตำแหน่งของอนุภาคถูกคำนวณบน shader จากความเร็วเริ่มต้นการเร่งความเร็วและเวลา ในการจัดเรียงระบบฉันจะต้องทำการคำนวณทั้งหมดนี้บน CPU ซึ่งเป็นสิ่งที่ฉันต้องการหลีกเลี่ยง จัดเรียงอนุภาคหลายร้อยกับตำแหน่งกล้องและอัปโหลดลงบน GPU แต่ละตะเข็บเพื่อให้การทำงานหนักเงียบสงบ การทดสอบอัลฟ่าดูเหมือนว่าจะเร็วพอสำหรับ GLES 2.0 และทำงานได้ดีสำหรับพื้นผิวที่ไม่โปร่งใส แต่มีการ "ปกปิด" ถึงกระนั้นก็ยังไม่เพียงพอสำหรับอนุภาคกึ่งโปร่งใส คุณจะจัดการกับสิ่งนี้อย่างไร
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.