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

เกี่ยวข้องกับการเคลื่อนที่ของวัตถุผ่านอวกาศและเวลา รวมถึงแนวคิดต่าง ๆ เช่นการเร่งความเร็ว (แรงขับและแรงโน้มถ่วง) มวลการตอบสนองการชนแรงเสียดทานและอื่น ๆ

2
ทรัพยากรของการจำลองน้ำที่เหมือนจริง?
ฉันต้องการศึกษาการจำลองน้ำด้วยการสาธิตด้วยรหัสแหล่งที่มาซึ่งใช้วิธีการทางกายภาพ (วิธีการของออยเลอร์หรือวิธีลากรองจ์) ฉันจะรับตัวอย่างได้อย่างไร

1
มีเอ็นจิ้นฟิสิกส์ 3D แบบโอเพนซอร์สแบบจุดคงที่หรือไม่? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน2 ปีที่ผ่านมา ฉันกำลังมองหาเอ็นจิ้นฟิสิกส์แบบสามมิติแบบจุดคงที่ (kynematics ขั้นพื้นฐานและความละเอียดการตรวจจับการชนกันของข้อมูล ... ไม่มีอะไรแฟนซีเกินไป) ฉันต้องการคณิตศาสตร์จุดคงที่เพราะฉันต้องการให้มีผลลัพธ์ที่กำหนดได้เพื่อวัตถุประสงค์ในการทำซ้ำและพกพาได้สูงเพราะฉันคาดหวังว่าเกมของฉันจะพกพาได้สูงสำหรับอุปกรณ์ต่าง ๆ เช่นโทรศัพท์มือถือหรือเครื่องเล่นเกมพกพา

3
มีอัลกอริทึมสำหรับเกมพูลหรือไม่?
ฉันกำลังมองหาอัลกอริทึมในการคำนวณทิศทางและความเร็วของลูกบอลในเกมพูล ฉันแน่ใจว่าต้องมีรหัสโอเพนซอร์สบางประเภทเนื่องจากเกมพูลเป็นเกมคอมพิวเตอร์ที่เก่าแก่ที่สุดที่ฉันจำได้ ฉันหมายถึงเมื่อลูกบอลหนึ่งนัดกระทบลูกอื่นฉันต้องการอัลกอริทึมในการคำนวณทิศทางของทั้งสองลูก มันจะขึ้นอยู่กับมุมที่แน่นอนของที่พวกเขาชนกันและความเร็ว ฉันต้องการฝึกการเขียนโค้ด Java ดังนั้นฉันกำลังมองหารหัสจาวาหรือแพ็คเกจที่มีรหัสประเภทนี้
14 java  physics  billards 

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

2
ฉันจะจำลองเอฟเฟกต์ doppler ในเกมได้อย่างไร
ฉันพยายามจำลองลักษณะของดอปเลอร์ในเกม (เกมแข่งรถ) ฉันไม่ได้ใช้ไลบรารี่เสียงเฉพาะที่จำลองเอฟเฟกต์ฉันมีฟังก์ชั่นโทรกลับเฉพาะที่ฉันผสมข้อมูล ฉันหาวิธีเปลี่ยนความถี่ของตัวอย่างในฟังก์ชั่นมิกเซอร์แล้ว สิ่งที่ฉันไม่รู้ก็คือความถี่ควรเปลี่ยนไปตามตำแหน่งของผู้เล่นและตัวส่งและความเร็ว นี่คือสิ่งที่ฉันมีในเกม: //player vec3 p.pos; vec3 p.vel; //emitter vec3 e.pos; vec3 e.vel; 1) ตามวิกิพีเดียความสัมพันธ์ระหว่างความถี่ที่ปล่อยออกมาและความถี่ที่สังเกตได้นั้นได้รับจาก: float f = (c + vr) / (c + vs) * fo โดยที่cคือค่าคงที่ความเร็วในสื่อกลาง (โดยทั่วไปจะเป็นจำนวนมาก) vsและvrเป็นความเร็วของแหล่งกำเนิดและตัวรับที่สัมพันธ์กับสื่อ ดังนั้นฉันเดา: float vr = p.vel.length; //player speed float vs = e.vel.length; //emitter speed แต่ฉันคิดว่ามันผิดมันจะไม่ก่อให้เกิดการเปลี่ยนแปลงใด ๆ ในความถี่เช่น: ถ้าvr …

1
วิธีการใช้กลไกของความเครียด / ความเครียดในภูมิประเทศ voxel?
ฉันอยู่ในขั้นตอนการพัฒนาโลกที่เหมือน Minecraft ซึ่งภูมิประเทศแบ่งออกเป็น voxels อย่างไรก็ตามฉันยังต้องการให้การกำหนดค่าของภูมิประเทศที่ไม่เสถียรลดลงอย่างไม่แน่นอน ยกตัวอย่างเช่นแขวนที่หนักเกินไปจะแตกหักและทำลายปิดที่ชุ 'ความเครียดสูง'ราวกับจะก่อเสาที่มีฐานการกัดเซาะไม่สมมาตร ฉันกำลังคิดที่จะเพิ่มฟิลด์ 'stress vector' ลงในแต่ละ voxel ในภูมิประเทศและทำสิ่งต่อไปนี้ (pseudocode): foreach voxel in terrain foreach neighbor in voxel.neighbor_voxels() if magnitude(voxel.stress - neighbor.stress) > stressThreshold detach_voxels(voxel, neighbor) แต่ปัญหาคือฉันไม่รู้ว่าจะคำนวณความเค้นเหล่านี้อย่างไร มีอัลกอริธึมที่ใช้ FEA แบบพิเศษสำหรับการแยกย่อยด้วย voxel ที่ฉันสามารถใช้ในการคำนวณความเค้นบนพื้นฐานของต่อ voxel หรือไม่? หรือฉันกำลังเข้าใกล้สิ่งนี้ผิดทั้งหมดและมีวิธีอื่นที่จะทำเช่นนี้?

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 …

4
ใช้การจำลองทางฟิสิกส์บนทั้งไคลเอนต์และเซิร์ฟเวอร์หรือไม่?
ฉันใช้ดาวเคราะห์น้อยแบบผู้เล่นหลายคนเพื่อเรียนรู้เกี่ยวกับสถาปัตยกรรมเครือข่ายไคลเอ็นต์ / เซิร์ฟเวอร์ในเกม ฉันใช้เวลาในการอ่านสิ่งพิมพ์ของ GafferOnGames และ Valve บนเทคโนโลยีไคลเอ็นต์ / เซิร์ฟเวอร์ของพวกเขา ฉันมีปัญหากับสองแนวคิด ขณะนี้ฉันมีเซิร์ฟเวอร์เกมจำลองสถานการณ์จริงที่มี box2d และส่งสถานะของโลกให้กับลูกค้าประมาณ 20 ครั้งต่อวินาที ลูกค้าแต่ละรายติดตามสแน็ปช็อตสองสามครั้งสุดท้ายที่ได้รับและ lerps ระหว่างสองสถานะเพื่อให้การเคลื่อนไหวของสไปรต์ราบรื่นขึ้น อย่างไรก็ตามมันไม่ราบรื่น มันอาจจะราบรื่นสักพักหนึ่งแล้วก็กระตุกนิดหน่อยจากนั้นก็กลับมาราบรื่น ฯลฯ ฉันลองทั้ง TCP และ UDP แล้วทั้งคู่ก็เหมือนกัน ความคิดใดที่ปัญหาของฉันอาจเป็นอย่างไร (หมายเหตุ: ฉันใช้สิ่งนี้กับผู้เล่นคนแรกก่อนและการเคลื่อนไหวของสไปรต์นั้นราบรื่นที่ 60fps เมื่ออัปเดตโลกฟิสิกส์เพียง 20 ครั้งต่อวินาที) เพื่อที่จะแก้ปัญหาแรกฉันคิดว่าบางทีไคลเอนต์ควรรันการจำลอง box2d ด้วยเช่นกันและเพียงแค่อัปเดตตำแหน่งของสไปรต์เพื่อให้ตรงกับสแนปชอตของเซิร์ฟเวอร์เมื่อพวกเขาไม่ตรงกัน ฉันคิดว่านี่อาจราบรื่นกว่าเนื่องจากการใช้ผู้เล่นคนเดียวของฉันราบรื่น นี่เป็นความคิดที่ดีหรือไม่? แม้ว่ามันจะไม่สามารถแก้ไขปัญหาข้างต้นได้มันจำเป็นสำหรับการทำนายลูกค้าหรือไม่? ตัวอย่างเช่นหากผู้เล่นพยายามเคลื่อนย้ายเรือของพวกเขาพวกเขาจะรู้ได้อย่างไรว่าพวกเขายิงยานอวกาศดาวเคราะห์ผนังหรือศัตรูโดยไม่มีการจำลองทางฟิสิกส์? ดูเหมือนว่าเรือของพวกเขาจะปรากฏขึ้นเพื่อผ่านวัตถุที่มันควรจะชนกันก่อนที่พวกเขาจะได้รับสแนปชอตจากเซิร์ฟเวอร์ที่ระบุว่าพวกเขาชนกับวัตถุ ขอบคุณ!

3
วิธีที่ดีที่สุดในการจัดการการชนพร้อมกันในเครื่องมือฟิสิกส์คืออะไร?
ฉันเขียนเอนจิ้นฟิสิกส์ 2d ใน javascript เพื่อให้ฉันสามารถเรียนรู้เพิ่มเติมเกี่ยวกับฟิสิกส์ในวิดีโอเกม ฉันให้มันทำงานอย่างถูกต้องสำหรับการชนกันของร่างกายที่แข็งยกเว้นถ้าร่างกายใด ๆ ชนกับร่างกายสองคนหรือมากกว่าในเวลาเดียวกัน ขณะนี้สำหรับร่างกายที่ชนกันแต่ละคู่ (A, B) ฉันปรับเปลี่ยนความเร็วและความเร็วเชิงมุมของพวกเขาตามแรงกระตุ้นการชนและผลักมันออกจากกัน แต่จากนั้นการตรวจจับการชนและการคำนวณแรงกระตุ้นสำหรับการชนอื่น ๆ ที่เกี่ยวข้องกับ A จะผิด ฉันสามารถสำรวจวิธีใดเพื่อให้เครื่องยนต์ทำงานกับวัตถุ 3+ ที่ชนกัน

3
การตอบสนองการปะทะกันของเกม 2D: SAT และการเคลื่อนที่ขั้นต่ำตามแกนที่กำหนดหรือไม่
ฉันพยายามนำระบบการชนมาใช้ในเกม 2D ที่ฉันทำ ทฤษฎีแกนการแยก (ตามที่อธิบายโดยบทช่วยสอนการชนของ metanet ) ดูเหมือนจะเป็นวิธีที่มีประสิทธิภาพและมีประสิทธิภาพในการจัดการการตรวจจับการชน แต่ฉันไม่ชอบวิธีการตอบสนองการชนที่พวกเขาใช้ ด้วยการแทนที่แกนอย่างเหลื่อมซ้อนกันอย่างสุ่ม ๆ อัลกอริธึมก็เพิกเฉยตำแหน่งก่อนหน้าของวัตถุที่เคลื่อนที่ซึ่งหมายความว่ามันจะไม่ชนกับวัตถุเคลื่อนที่มากเท่าที่มันเข้ามาแล้วก็เด้งออกมา นี่คือตัวอย่างของสถานการณ์ที่สำคัญ: ตามวิธี SAT อธิบายข้างต้นสี่เหลี่ยมจะโผล่ออกมาจากสามเหลี่ยมตั้งฉากกับด้านตรงข้ามมุมฉากของมัน: อย่างไรก็ตามตามความเป็นจริงสี่เหลี่ยมควรหยุดที่มุมล่างขวาของรูปสามเหลี่ยมซึ่งจะเป็นจุดที่เกิดการชนครั้งแรกถ้ามันเคลื่อนไหวอย่างต่อเนื่องตามเวกเตอร์การกระจัด: ตอนนี้สิ่งนี้อาจไม่สำคัญในระหว่างการเล่นเกม แต่ฉันชอบที่จะรู้ว่ามีวิธีการที่มีประสิทธิภาพ ฉันเก็บสมองของฉันไว้สองสามวันที่ผ่านมาและฉันยังไม่อยากยอมแพ้! (ข้ามโพสต์จาก StackOverflow หวังว่าจะไม่ผิดกฎ!)

3
เกมแป้ง: พวกมันทำงานอย่างไร
ฉันเพิ่งพบอัญมณีทั้งสองนี้: http://powdertoy.co.uk/ http://dan-ball.jp/en/javagame/dust/ คำถามของฉันคือฟิสิกส์มีการจัดการองค์ประกอบต่าง ๆ อย่างมีประสิทธิภาพได้อย่างไร ฉันเพิ่งประเมินพลังการคำนวณขั้นต่ำอย่างรุนแรงหรือเป็นไปได้ที่ 'เพียงแค่' มีอาร์เรย์สองมิติแต่ละเซลล์ซึ่งอธิบายสิ่งที่วางไว้ตามตำแหน่งและจำลองแต่ละเซลล์ในทุกขั้นตอน หรือมีสิ่งที่ซับซ้อนกว่านี้เช่นการสรุปพื้นที่ขนาดใหญ่ประเภทเดียวกันลงในชุดข้อมูลเดียวและแยกชุดดังกล่าวออกตามต้องการ มีเกมโอเพนซอร์ซแบบนี้ไหมที่ฉันสามารถดูได้?

4
ฟิสิกส์ยานพาหนะด้วยการลื่นไถล
ฉันจะสร้างฟิสิกส์รถยนต์สำหรับรถยนต์ที่สามารถยึดเกาะถนนได้อย่างไร ฉันต้องการให้ดูเหมือนว่าคนขับมีเท้าแบนดังนั้นเมื่อคุณกดแก๊สพวกเขาขับรถ (ด้านหลัง) ล้อลากฉับและทำให้ควบคุมได้ยาก ฉันต้องการทำโดนัทและ "ล่องลอย" รอบมุม ฉันต้องรู้ด้วยว่า "ลื่นไถล" เกิดขึ้นได้อย่างไรดังนั้นฉันสามารถเพิ่มเครื่องหมายควันและยางในสัดส่วน สมมติว่าเป็นเกมรถสไตล์ 2d จากบนลงล่าง ขอบคุณ
13 2d  physics 

2
ฉันจะทำให้ตัวละคร 2D ของฉันยืนอยู่บนความชันได้อย่างไร
ฉันมีตัวละครตัวนี้ใน Unity3D (โหมด 2D) ... ในความชันที่ดูเหมือนนี้ แต่ฉันต้องการให้ตัวละครยืนตามเส้นสีแดง .. เหมือนด้านล่าง ฉันจะสร้างมันใน Unity3d ได้อย่างไร ฉันได้ตั้งค่านี้แล้ว ฉันกำลังใช้ Addforce แบบง่ายสำหรับการเคลื่อนย้าย ... หากฉันลบข้อ จำกัด ตำแหน่ง z ส่งผลให้เกิดการเคลื่อนไหวแปลก ๆ เช่นการกลิ้งและอื่น ๆ .... ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม :)

4
คำแนะนำเครื่องยนต์ฟิสิกส์ที่สามารถจำลองเกมพูลได้อย่างถูกต้อง? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน6 ปีที่ผ่านมา ฉันทำเกมเหมือนเกมพูล เกมนี้ต้องการการสะท้อนกลับที่ถูกต้อง (หรือแม่นยำมาก) ฉันลองBox2DและBullet Physicsแต่พวกเขาทั้งคู่มีปัญหานี้ หากมีกำแพงอยู่ด้านบนของภาพนี้คาดว่าเส้นสีแดงจะเป็นลูกบอลจริงในเกมพูล แต่เครื่องยนต์มักจะแสดงเส้นทางสีเขียว โดยเฉพาะอย่างยิ่ง สิ่งนี้เกิดขึ้นหลังจากลูกบอลเคลื่อนที่ช้า ๆ ชนกับกำแพง บางครั้งลูกบอลที่เคลื่อนที่เร็วจะช้าลงในทันที ฉันกำลังค้นหาเอ็นจิ้นฟิสิกส์ซึ่งสามารถจำลองเกมพูลได้อย่างถูกต้องมากที่สุดโดยไม่มีปัญหาเหล่านี้ ฉันขอคำแนะนำได้ไหม? ตอนนี้ฉันกำลังขุดNewton Game Dynamicsแต่ฉันไม่แน่ใจว่าเอ็นจิ้นจะแสดงสิ่งที่ฉันต้องการ ฉันกำลังพิจารณาPhysXเป็นรุ่นทดลองต่อไปและต้องทำด้วยตัวเองถ้าไม่มีอะไรทำงาน แต่เห็นได้ชัดว่ามันใช้เวลานานมากดังนั้นฉันหวังว่าฉันจะไม่ทำอย่างนั้น ฉันจะได้รับการชื่นชมมากถ้าคุณประหยัดเวลาของฉัน และแน่นอนว่าการแก้ปัญหาด้วย Box2D / Bullet Physics ก็ยินดีเช่นกัน ฉันทำงานกับ C / C ++ / Objective + C บน iOS ฉันแนบการกำหนดค่าของฉันกับ Box2D …
13 physics 

3
วิธีการใช้การตรวจสอบการชนกันของพอร์ทัล?
ตัวอย่างเช่นใช้สถานการณ์นี้ (ขอโทษทักษะการวาดที่น่ากลัวของฉัน): สิ่งนี้ขึ้นอยู่กับ "Portal" ซึ่ง stickman กำลังผ่านพอร์ทัลสีน้ำเงิน (ซึ่งเชื่อมโยงกับพอร์ทัลสีแดง) แต่มีกำแพงหยุดเขาบนพอร์ทัลแดง ดังนั้นเขาไม่สามารถผ่านพอร์ทัลได้อย่างสมบูรณ์ ดังนั้นคำถามของฉันคือ: ฉันจะตรวจจับฟิสิกส์ / การชนกับพวกเขาได้อย่างไร ฉันจะฝานเครื่องเล่นหรือไม่ มีวิธีเชื่อมโยงพวกเขาหรือไม่ มีเอ็นจิ้นฟิสิกส์ที่สนับสนุนการทำเช่นนี้หรือไม่ ถ้าไม่ฉันจะทำอย่างไร

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