পদার্থবিজ্ঞানের ইঞ্জিনের সুপারিশ যা পুল গেমটি সঠিকভাবে অনুকরণ করতে পারে? [বন্ধ]


13

আমি গেমের মতো একটি পুল-গেম তৈরি করছি। এই গেমটির সঠিক (বা খুব নির্ভুল) প্রতিবিম্বিত বাউন্স প্রয়োজন। আমি বক্স 2 ডি এবং বুলেট ফিজিক্স চেষ্টা করেছিলাম , তবে তাদের দুজনেরই এই সমস্যা রয়েছে।

চিত্রণ

যদি এই চিত্রের উপরে কোনও প্রাচীর থাকে তবে একটি লাল-গেমের মধ্যে একটি সত্যিকারের বলের লাল রেখাটি প্রত্যাশিত। তবে ইঞ্জিনগুলি প্রায়শই গ্রিন লাইন কোর্সটি দেখায়। বিশেষ করে

  1. ধীরে ধীরে চলমান বল দেয়ালে আঘাত করার পরে এটি ঘটে।
  2. কখনও কখনও একটি দ্রুত চলমান বল হঠাৎ ধীর হয়ে যায়।

আমি এমন একটি পদার্থবিজ্ঞানের ইঞ্জিন সন্ধান করছি যা এই সমস্যাগুলি ছাড়াই যথাসম্ভব যথাযথভাবে পুল-গেম অনুকরণ করতে পারে। আমি কি কিছু সুপারিশ পেতে পারি? এখন আমি নিউটন গেম ডায়নামিক্স খনন করছি , তবে আমি নিশ্চিত নই যে ইঞ্জিনটি আমার যা চাইবে তা প্রদর্শন করবে। আমি ফিজএক্স ইঞ্জিনটিকে পরের ট্রায়াল হিসাবে বিবেচনা করছি এবং কিছুই কাজ না করে আমার নিজের তৈরি করতে হবে। তবে এটি সুস্পষ্ট যে এটি খুব দীর্ঘ সময় নিতে পারে, তাই আমি আশা করি আমি এটি না করি। আপনি আমার সময় বাঁচালে আমি খুব প্রশংসা করব। এবং অবশ্যই, বক্স 2 ডি / বুলেট পদার্থবিজ্ঞানের সাথে সমাধানটিও স্বাগত।

আমি আইওএস-এ সি / সি ++ / অবজেক্টিভ + সি নিয়ে কাজ করছি।


আমি বক্স 2 ডি এর সাথে আমার কনফিগারেশন সংযুক্ত করি।

দেয়াল

  • স্ট্যাটিক বক্স আকার
  • লিনিয়ার / কৌণিক স্যাঁতসেঁতে = 0.1
  • পুনরুদ্ধার = 1.0
  • ঘর্ষণ = 100
  • ঘনত্ব = 10
  • বুলেট = মিথ্যা
  • স্থির ঘূর্ণন = মিথ্যা
  • ইনটারিয়াল স্কেল = 1.0

বাজে কথা

  • গতিশীল গোলক আকার
  • লিনিয়ার / কৌণিক স্যাঁতসেঁতে = 0.1
  • পুনরুদ্ধার = 1.0
  • ঘর্ষণ = 100
  • ঘনত্ব = 20
  • বুলেট = সত্য
  • স্থির ঘূর্ণন = মিথ্যা
  • ইনটারিয়াল স্কেল = 1.0

3
সম্ভাবনাগুলি হ'ল ইঞ্জিনটি ভুল নয়, তবে আপনি কোনও সম্পত্তি সেট করেছেন না বা এটি কোনওভাবে ভুল করছেন।
কমিউনিস্ট হাঁস


আমি ঘনত্ব 1 এবং ঘর্ষণ ০.০ ~ ০.০ দিয়ে পরীক্ষা করেছি, এটি স্থির থাকে।
Eonil

উত্তর:


8

বিভিন্ন সমাধান।

  1. Box2D জন্য, সেট b2_velocityThresholdমধ্যে b2Settings.hফাইল। আমার ক্ষেত্রে, আমি এটি সেট করেছিলাম 0.0fএবং এটি কার্যকর হয়েছে! ভর, ঘর্ষণ, স্যাঁতসেঁতে সমস্যা ছিল না। আরও তথ্যের জন্য এই আলোচনার থ্রেডটি পরীক্ষা করুন। http://www.box2d.org/forum/viewtopic.php?f=3&t=6906&p=30782#p30782

  2. অন্যান্য পদার্থবিজ্ঞানের ইঞ্জিন ব্যবহার করা। নিউটন গেম ডায়নামিকস ডিফল্টরূপে এটি সঠিকভাবে সম্পাদন করতে কনফিগার করেছে। তবে আইওএসে নিউটন ডায়নামিক্স ব্যবহার করা সম্ভব তবে এটি অন্যদের চেয়ে কিছুটা শক্ত। আমি এটি বেশ কয়েকটি দিন আইওএসের জন্য কনফিগার করেছিলাম।

আমি বুলেটফিজিক ফোরামগুলিতেও জিজ্ঞাসা করছি। আমার সমাধান পেলে আমি এটি আপডেট করব।

- (সম্পাদনা) -

বুলেটে কিছু থ্রোসোল্ড অ্যাট্রিবিউটস রয়েছে, তবে আমি ঠিক একই জিনিসটি পাইনি b2_velocityThreshold

এটি দেখতে দেখতে একইরকম, তবে কার্যকর হয়নি।

btRigidBody->setContactProcessingThreshold(0.0f)

6

বক্স 2 ডি আপনি যা চাইবেন তা করবে তবে আপনাকে প্রাচীর এবং বল ফিক্সারের জন্য পুনঃস্থাপন (বাউন্স) স্থিরতা নির্ধারণ করতে হবে। পুল গেমের জন্য আপনি সম্ভবত নিখুঁত পুনরুদ্ধার এবং উচ্চ ঘর্ষণ দিয়ে শুরু করতে চান তবে লিনিয়ার এবং কৌণিক স্যাঁতসেঁতে এবং সেখান থেকে টুইট করতে পারেন।


আমি কয়েক দিনের মধ্যে অনেকগুলি কনফিগারেশন চেষ্টা করেছি, তবে এটি এখনও ঘটে। আমি একটি ভাল উদাহরণ পেতে পারি ...?
ইওনিল

3
আপনার ঘনত্ব এবং ঘর্ষণ মানগুলি খুব বড় মনে হয়, বক্স 2 ডি এর জন্য।

4

পদার্থবিজ্ঞানের ইঞ্জিনগুলির একটি বাউন্স থ্রেশহোল্ড রয়েছে। এই ইঞ্জিনগুলির মধ্যে যে কোনও একটিতে এটি কীভাবে করা যায় তা আমি জানি না, তবে প্রান্তিকের উচ্চতা নির্ধারিত হওয়ার ফলে এটি একটি নির্দিষ্ট বেগের অধীনে প্রভাবগুলি উপেক্ষা করবে। বাউন্স থ্রেশহোল্ডটি কম করুন এবং এটি নিম্ন গতিতে বাউন্স করবে।

আমি জানি আপনি একটি পৃথক পদার্থবিজ্ঞানের ইঞ্জিন চেয়েছিলেন, তবে আমি যে সমস্ত পদার্থবিজ্ঞানের ইঞ্জিনগুলি জানি সেগুলি একে অপরের শীর্ষে বসে থাকাকালীন বিষয়গুলিকে ঝাঁকুনিতে আটকাতে ব্যবহারের জন্য বাউন্স থ্রেশহোল্ডগুলি ব্যবহার করে। সুতরাং কোনও ভাল পদার্থবিজ্ঞানের ইঞ্জিনের পরামর্শ দেওয়া প্রতিরোধী হবে কারণ যে কোনও ভাল পদার্থবিজ্ঞানের ইঞ্জিনের এই প্রভাব থাকবে।


0

আমার এই সমস্যাটি ছিল এবং আমার জন্য সমাধানটি নিখুঁত ক্ষতিপূরণ প্রদান করছিল।

সুতরাং আমার জন্য যে সমস্ত বস্তুর জন্য 0.5 এর স্কয়ার্ট। কারণ স্কয়ার্ট (আর 1 * আর 1 + আর 2 * আর 2) == 1 নিখুঁত পরিস্থিতিতে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.