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

กระบวนการสร้างภาพหรือชุดของภาพจากแบบจำลองโดยใช้โปรแกรมคอมพิวเตอร์

1
ฉันจะสร้างการไหลของน้ำแบบเรียงบนลงล่าง 2 มิติได้อย่างไร?
ฉันกำลังทำงานในเกม 2D ที่เป็นภาพกราฟิกบนพื้นฐานที่ได้รับแรงบันดาลใจจากป้อมปราการ Dwarf ฉันอยู่ในจุดที่ใช้แม่น้ำในโลกของเกมซึ่งครอบคลุมจำนวนแผ่นและฉันได้คำนวณทิศทางการไหลสำหรับแต่ละไทล์ดังที่แสดงด้านล่างโดยเส้นสีแดงในแต่ละไทล์ สำหรับการอ้างอิงถึงสไตล์กราฟิกนี่คือลักษณะของเกมของฉันในขณะนี้: สิ่งที่ฉันต้องการคือเทคนิคบางอย่างในการเคลื่อนไหวของน้ำที่ไหลในแผ่นกระเบื้องของแม่น้ำแต่ละสายเพื่อให้การไหลของมันกลมกลืนไปกับแผ่นกระเบื้องโดยรอบ ตัวอย่างที่ใกล้เคียงที่สุดที่ฉันได้พบกับสิ่งที่ผมอธิบายไว้หลังจากที่http://www.rug.nl/society-business/centre-for-information-technology/research/hpcv/publications/watershader/แต่ฉันไม่ได้ค่อนข้าง เมื่อถึงจุดที่สามารถเข้าใจว่าเกิดอะไรขึ้น ฉันมีความเข้าใจเพียงพอเกี่ยวกับการเขียนโปรแกรม shader ที่จะใช้แสงแบบไดนามิกของตัวเอง แต่ฉันไม่สามารถเข้าใจวิธีการที่นำมาใช้ในบทความที่เชื่อมโยงได้ ใครช่วยอธิบายถึงผลข้างต้นที่เกิดขึ้นหรือแนะนำวิธีการอื่นเพื่อให้ได้ผลลัพธ์ที่ฉันต้องการ ฉันคิดว่าส่วนหนึ่งของวิธีแก้ปัญหาข้างต้นซ้อนทับกระเบื้อง (แม้ว่าฉันไม่แน่ใจว่าจะใช้ชุดค่าผสมใด) และหมุนแผนที่ปกติที่ใช้สำหรับการบิดเบือน (อีกครั้งไม่มีแนวคิดเฉพาะเจาะจง) และในอดีตว่าฉันหายไปเล็กน้อยขอบคุณ ความช่วยเหลือใด ๆ !

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 

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

3
การใช้ความละเอียดบัฟเฟอร์ความลึกเต็มรูปแบบสำหรับการแสดงผล 2D
ฉันกำลังทำงานกับโหมดแสดงภาพแบบด้านหน้าไปด้านหลังสำหรับเครื่องยนต์ 2D โดยใช้การฉายภาพแบบออโธกราฟฟิค ฉันต้องการใช้บัฟเฟอร์ความลึกเพื่อหลีกเลี่ยงการถอนเงินมากเกินไป ฉันมีบัฟเฟอร์ความลึก 16 บิตกล้องที่ Z = 100 ดูที่ Z = 0, z ใกล้เคียงคือ 1 และ zFar คือ 1,000 แต่ละสไปรต์ที่แสดงผลจะตั้งค่าพิกัด Z ของมันเป็นค่าที่ห่างไกลมากขึ้น อะไรก็ตามที่อยู่ด้านล่าง อย่างไรก็ตามฉันทราบวิธีการที่ตำแหน่ง Z ลงท้ายด้วยค่าบัฟเฟอร์ Z คือไม่ใช่เชิงเส้น ฉันต้องการใช้ความละเอียดเต็มรูปแบบของบัฟเฟอร์ความลึก 16 บิตนั่นคืออนุญาตให้มีค่าที่ไม่ซ้ำกัน 65536 ชิ้น ดังนั้นสำหรับทุก sprite ที่เรนเดอร์ฉันต้องการเพิ่มตำแหน่ง Z ไปยังตำแหน่งถัดไปเพื่อให้สัมพันธ์กับค่าบัฟเฟอร์ความลึกที่ไม่ซ้ำกันถัดไป กล่าวอีกนัยหนึ่งฉันต้องการเปลี่ยนดัชนีที่เพิ่มขึ้น (0, 1, 2, 3 ... ) ของสไปรต์ที่ถูกดึงเข้าไปในตำแหน่ง Z ที่เหมาะสมสำหรับแต่ละสไปรต์เพื่อให้มีค่าบัฟเฟอร์ความลึกที่ไม่ซ้ำกัน …

2
บางคนสามารถอธิบายการแสดงเส้นโค้งคู่ได้หรือไม่
ฉันพยายามทำความเข้าใจกับการเรนเดอร์ voxel และมองดู contouring คู่ (DC) จนถึงตอนนี้ฉันเข้าใจสิ่งนี้มาก: ใช้ฟังก์ชั่นความหนาแน่นสำหรับชุดของจุดกริด (เช่นฟังก์ชั่นสัญญาณรบกวน) ค้นหาว่าขอบใดใน gird มีการเปลี่ยนแปลงระหว่างจุดสิ้นสุด จากขอบเหล่านี้จะสร้างจุดตัด (เช่นเวกเตอร์) ตอนนี้ที่นี่คือที่ที่ฉันติดอยู่ต่อไปจะสร้างบรรทัดฐาน แต่อย่างไร เมื่อดูที่หัวข้อนี้ภาพนี้ปกติจะหมดไป การทำวิจัยบ่งชี้ว่าบรรทัดฐานจะถูกสร้างขึ้นจากหน้าตา ถูกต้องหรือไม่ที่จะคิดว่าฉันเปลี่ยนจากเสียงเป็น isosurface เป็นบรรทัดฐาน? ถ้าเป็นเช่นนั้นฉันจะสำเร็จแต่ละขั้นตอนได้อย่างไร เพื่อความเข้าใจของฉันขั้นตอนต่อไปจะเป็นดังต่อไปนี้จากกระดาษ DC ; สำหรับแต่ละขอบที่แสดงการเปลี่ยนแปลงเครื่องหมายให้สร้างรูปสี่เหลี่ยมที่เชื่อมต่อจุดลดขนาดของสี่ลูกบาศก์ที่มีขอบ คำพูดนี้แสดงด้วยภาพด้านบนหรือไม่? ในที่สุดขั้นตอนต่อไปคือการเรียกใช้ QEF ด้วยจุดตัดและบรรทัดฐานและสิ่งนี้จะสร้างข้อมูลจุดสูงสุดของฉัน ถูกต้องหรือไม่

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