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

5
สร้างต้นไม้ 3 มิติแบบตาข่าย
ฉันยังไม่พบคำถามในบรรทัดเหล่านี้แก้ไขให้ฉันถ้าฉันผิด ต้นไม้ (และสัตว์โดยทั่วไป) เป็นเรื่องธรรมดาในเกม เนื่องจากลักษณะของพวกเขาพวกเขาเป็นผู้สมัครที่ดีสำหรับการสร้างขั้นตอน มีSpeedTreeแน่นอนถ้าคุณสามารถจ่ายได้; เท่าที่ฉันสามารถบอกได้มันไม่ได้ให้ความเป็นไปได้ในการสร้าง tree tree ของคุณในขณะทำงาน จากนั้นมีSnappyTreeเครื่องมือสร้างแผนภูมิออนไลน์ webgl based โดยใช้proctree.jsซึ่งมีจาวาสคริปต์ประมาณ 500 บรรทัด หนึ่งสามารถใช้อย่างใดอย่างหนึ่งดังกล่าวข้างต้น (หรือบางกำเนิดต้นไม้อื่น ๆ ที่ฉันไม่ได้สะดุด) เพื่อสร้างต้นไม้สองสามโหลตาข่ายล่วงหน้า - หรือรูปแบบพวกเขาตั้งแต่เริ่มต้นในแบบจำลอง 3 มิติ - แล้วสุ่มสะท้อน / ปรับพวกเขาสำหรับตัวแปรอีกไม่กี่ .. แต่ฉันอยากจะมีเครื่องกำเนิดตาข่ายต้นไม้ที่เชื่อมโยงได้ฟรี การแก้ปัญหาที่เป็นไปได้: พอร์ต proctree.js ไปยัง c ++ และจัดการกับใบอนุญาตโอเพนซอร์ซ (ดูเหมือนจะไม่ใช่ gpl ดังนั้นจึงสามารถทำได้ผู้เขียนอาจเต็มใจร่วมมือเพื่อทำให้ใบอนุญาตนั้นฟรีมากขึ้น) ม้วนตัวเองตามระบบ L อย่ากังวลเพียงใช้ต้นไม้ที่สร้างแบบออฟไลน์ ใช้วิธีอื่นที่ฉันยังไม่พบ อัปเดต 2015 : สิ้นสุดการย้ายพอร์ต proctree.js …

4
ใช้การสร้างอินสแตนซ์สำหรับทุกสิ่งหรือไม่
อินสแตนซ์ช่วยเพิ่มประสิทธิภาพ (อย่างมีนัยสำคัญ) เมื่อเรนเดอร์หลายชุด แต่มันมีค่าใช้จ่ายเท่าไหร่เมื่อแสดงสำเนาหนึ่งชุดด้วยการเรียกแบบดึงครั้งเดียว เป็นความคิดที่ดีหรือไม่ดีที่จะใช้อินสแตนซ์สำหรับรูปทรงเรขาคณิตทั้งหมดของเครื่องยนต์ แก้ไข: สมมติว่าเรากำลังสร้างเกม FPS วัตถุส่วนใหญ่มีเพียงตัวอย่างเดียว: มีด, ปืน, ปืนกล, อาคารและหอวิทยุ แต่ยังมีวัตถุบางอย่างที่มีหลายอินสแตนซ์: ต้นไม้ (เช่น 3 ชนิดของต้นไม้ที่มีหลายร้อยอินสแตนซ์) หญ้าและอื่น ๆ ... สิ่งที่ฉันหมายถึงคือ: แทนที่จะแสดงวัตถุแบบเดียวกับวิธี "ดั้งเดิม" และต้นไม้ และหญ้าโดยใช้อินสแตนซ์เราแสดงผลทั้งหมดโดยใช้อินสแตนซ์ ดังนั้นหอวิทยุของเรามีเพียงหนึ่งตัวอย่าง (ที่มีข้อมูลที่เราเก็บไว้ในบัฟเฟอร์ข้อมูลเป็นต้น) และเราทำให้หอว่าการใช้ชนิดของการโทรกับอินสแตนซ์นับเท่ากับDrawInstanced() 1เช่นเดียวกับวัตถุอื่น ๆ (แน่นอนต้นไม้และหญ้ามีหลายกรณี) ดังนั้นคำถามของฉันคือ: มันเป็นความคิดที่ดีที่จะวาดอินสแตนซ์เดียวของวัตถุโดยใช้อินสแตนซ์หรือไม่? การอินสแตนซ์มีค่าใช้จ่ายมากเกินไป (หน่วยความจำและประสิทธิภาพการทำงานที่ฉลาด) หรือเป็นสิ่งที่ไม่พึงประสงค์ในการเรนเดอร์วัตถุอินสแตนซ์เดี่ยวหรือไม่?
16 mesh  instancing 

2
การเคลื่อนไหวนั้นขึ้นอยู่กับอัตราเฟรมแม้จะใช้ Time.deltaTime
ฉันมีรหัสต่อไปนี้เพื่อคำนวณการแปลที่จำเป็นในการย้ายวัตถุเกมใน Unity ซึ่งเรียกว่าLateUpdateมา จากสิ่งที่ฉันเข้าใจการใช้งานของฉันTime.deltaTimeควรจะทำให้เป็นอิสระแปลสุดท้ายอัตราเฟรม (โปรดทราบCollisionDetection.Move()เป็นเพียงการแสดง raycasts) public IMovementModel Move(IMovementModel model) { this.model = model; targetSpeed = (model.HorizontalInput + model.VerticalInput) * model.Speed; model.CurrentSpeed = accelerateSpeed(model.CurrentSpeed, targetSpeed, model.Accel); if (model.IsJumping) { model.AmountToMove = new Vector3(model.AmountToMove.x, model.AmountToMove.y); } else if (CollisionDetection.OnGround) { model.AmountToMove = new Vector3(model.AmountToMove.x, 0); } model.FlipAnim = flipAnimation(targetSpeed); // If …

1
ฉันจะแก้ไขการจับคู่การทำแผนที่ UV ซิกซิกแซกบนตาข่ายที่สร้างขึ้นได้อย่างไร
ฉันกำลังสร้างตาข่ายแบบขั้นตอนตามเส้นโค้งและขนาดของตาข่ายจะเล็กลงตลอดทั้งเส้นโค้งตามที่คุณเห็นด้านล่าง และปัญหาคือรังสียูวีได้รับซิกแซกเนื่องจากการเปลี่ยนแปลงขนาด (มันทำงานได้อย่างสมบูรณ์เมื่อขนาดของตาข่ายเท่ากันตลอดทั้งโค้ง) Vertices.Add(R); Vertices.Add(L); UVs.Add(new Vector2(0f, (float)id / count)); UVs.Add(new Vector2(1f, (float)id / count)); start = Vertices.Count - 4; Triangles.Add(start + 0); Triangles.Add(start + 2); Triangles.Add(start + 1); Triangles.Add(start + 1); Triangles.Add(start + 2); Triangles.Add(start + 3); mesh.vertices = Vertices.ToArray(); //mesh.normals = normales; mesh.uv = UVs.ToArray(); mesh.triangles = Triangles.ToArray(); …

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