আমি কীভাবে একটি বড় স্পেস ব্যাকগ্রাউন্ড তৈরি করতে পারি যা অবিজ্ঞাত উপায়ে পুনরাবৃত্তি করে


14

আমি কীভাবে একটি বড় স্পেস ব্যাকগ্রাউন্ড তৈরি করতে পারি যা আরটিস গেমটির পুনরাবৃত্তি করে। আমি জটিল নীহারিকা এবং ধূলিকণা ক্ষেত্রগুলিও রাখতে চাই, তবে ইউনিটগুলি যেহেতু অন্বেষণ করার জন্য প্রচুর জায়গা পাবে আমি 120000px দ্বারা 1200000px jpeg রাখতে পারি না, তাই আমি চিত্রটি পুনরাবৃত্তি করতে চাই, তবে বিভাগগুলির মধ্যে পরিবর্তন লাইন নেই।

আমি ওয়েব জিএল ক্যানভাসের জন্য মাইক্রোসফ্ট দ্বারা ব্যাবিলনের কাঠামোর সাথে এটি ব্যবহার করছি


8
আপনি কি কোনও চিত্রের পরিবর্তে কেবলমাত্র একটি প্রসেসরাল শেডার ব্যবহার করে বিবেচনা করেছেন? একটি সরল ওয়েব অনুসন্ধান এই এক আপ, খুব চিত্তাকর্ষক ধরনের দেখায় যা আনতে: casual-effects.blogspot.com.au/2013/08/starfield-shader.html
LeFauve

@ লেফাউভ আসলে আমি এই ধারণাটি অনেক পছন্দ করি। আপনি যখন আবার ভ্রমণ করেন গেমটি কি অতীতের উত্পন্ন জিনিসগুলি মনে করে? আমি ব্রাউজারের স্মৃতিতে এটি কীভাবে পরিচালনা করতে পারি?
সুপারউবারডুপার

@ সুপারউবারডুপার: যতক্ষণ না এটি নির্বিঘ্নে এবং স্থানীয় পদ্ধতিতে উত্পন্ন হয় ততক্ষণ কোনও কিছু মনে রাখার দরকার নেই। যখনই প্রয়োজন হবে কেবলমাত্র ডেটা পুনরায় তৈরি করুন।
আর .. গীটহাব বন্ধ করুন ICE

@ লেফাউভ: এটি সত্যিই একটি উত্তর হওয়া উচিত। দেওয়া উত্তরগুলির তুলনায় এটি অনেক ভাল।
আর .. গীটহাব বন্ধ করুন ICE

@ আর .. আমি সম্মতি জানাই, এর জন্য ওয়েবজিএলে কিছু কোড রাখলে ভাল লাগবে;)
সুপারউবারডুপার

উত্তর:


19
  1. প্যারাল্যাক্স স্ক্রোলিং ব্যবহার করুন। একাধিক ব্যাকগ্রাউন্ড স্তর রয়েছে যা মূল দৃষ্টিকোণের গতির বিভিন্ন ভগ্নাংশের সাথে স্ক্রোল করে। স্তরটি যত কম হবে তত ধীরে ধীরে এটি স্ক্রোল করে। গভীরতার মায়া দেওয়ার জন্য এটি কেবল একটি দুর্দান্ত উপায় নয়, এটি ব্যাকগ্রাউন্ডগুলিও কম পুনরাবৃত্তিমূলক দেখায় কারণ স্তরগুলি সিঙ্কে না থাকার কারণে বিভিন্ন স্তরগুলির অবজেক্টগুলি বিভিন্ন রচনায় প্রদর্শিত হবে।

  2. পদ্ধতিগতভাবে আপনার ব্যাকগ্রাউন্ড তৈরি করুন। এক বিশাল পটভূমির গ্রাফিকের পরিবর্তে একাধিক বিভিন্ন ছোট ছোট উপাদান রয়েছে এবং এগুলি সমস্তকে একাধিকবার এলোমেলোভাবে সমস্ত গেমের বিশ্ব জুড়ে রাখুন।

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


7

2 ডি গেমের জন্য অসীম পটভূমি তৈরির একটি উপায় নিম্নলিখিত:

  1. গ্রাফিক্স সম্পাদক সফ্টওয়্যার ব্যবহার করে (ম্যাকের জন্য আইড্রাওয়ের মতো) একটি চিত্র তৈরি করুন যা আপনার পটভূমির একটি অংশকে উপস্থাপন করে। এই চিত্রের একটি সীমিত আকার হওয়া উচিত।
  2. এটিকে সদৃশ করুন এবং এটি Y অক্ষে মিরর করুন, এটি বি
  3. এখন (অনুভূমিকভাবে) টোগিটার এ এবং বি পেস্ট করুন, এটি এবি
  4. অবশেষে আপনার গেমটিতে চিত্রটি এবি আমদানি করুন এবং কোডের মাধ্যমে আনুভূমিকভাবে এটি পুনরাবৃত্তি করুন যতবার আপনি চান।

আশাকরি এটা সাহায্য করবে.


2
সীমিত আকার, তবে খুব সীমাবদ্ধ নয়। টাইল যত কম হবে, পুনরাবৃত্তিটি তত বেশি স্পষ্ট হবে।
সিএওও

1
অথবা, মিররিংয়ের পরিবর্তে ফটোশপে অফসেট ফিল্টারটি ব্যবহার করুন এবং সীমানাগুলির উপরে ক্লোন স্ট্যাম্প ব্যবহার করুন, বা কেবল জিম্পের "মেক সিমলেস" ফিল্টার (ফিল্টার → মানচিত্র → মেক সিমলেস) ব্যবহার করুন।
wchargin

5

স্তরগুলি ভাল কাজ করে।

এখানে কয়েকটি গণিত রয়েছে:

মনে করুন আপনার কাছে এমন একটি রেলপথ রয়েছে যা খারাপভাবে তৈরি করা হয়েছে __ __যাতে এইগুলির মধ্যে ফাঁকগুলি লক্ষ্য করা যায়। চাকা যখন তাদের উপর ঘুরিয়ে দেয় এটি একটি ছোট খাঁজ (ক্ষুদ্রতম খাঁজ) তৈরি করে।

ট্র্যাক দৈর্ঘ্য হয় তাহলে lএবং চাকা ব্যাসার্ধ রয়েছে rতারপর 2pi r, চাকা circumfrence হয় ration=l/(2pi r)যদি অনুপাত বলতে 10.25 তারপর চাকা যেমন একটি দীর্ঘ rides একটি খাঁজ এটা প্রতিটি চতুর্থাংশ পেতে হবে।

কভারিং স্পেসগুলি ব্যাখ্যা করার জন্য এটি আমি সবচেয়ে সহজ উপায়।

সুতরাং ধরুন আপনার কাছে দুটি চিত্র রয়েছে, যদি একটিতে এই ত্রৈমাসিকের অনুপাত থাকে তবে আপনি একটি 4-পর্যায়ের প্যাটার্ন পাবেন, এটি 4 টি টাইল পরে পুনরাবৃত্তি করবে। ধরুন আপনার কাছে মি এবং এন পর্যায়ক্রমে 1 টি প্রধান পটভূমি এবং 2 টি ওভারলে রয়েছে। তারপরে এম * এন টাইলসের পরে প্যাটার্নটি পুনরাবৃত্তি করবে।

সংখ্যাটি কো-প্রাইম হলে এটি প্যাটার্নটি সবচেয়ে ভাল দেখাচ্ছে যদিও এটি সর্বশ্রেষ্ঠ সাধারণ বিভাজক ১ is উদাহরণস্বরূপ ধরুন আমাদের কাছে ফেজ of এর কিছু আছে এবং ৪ র্থ ধাপের কিছু আছে, প্রতিটি অন্যান্য পর্বে এইগুলি "লাইন আপ করবে" " এ অর্থে.

আপনি খুব অল্প চেষ্টা করে প্রচুর "অনন্য" স্টাফ তৈরি করতে এই কৌশলটি (বিশেষত কণা এবং স্টাফ সহ) ব্যবহার করতে পারেন।

ট্রেন চাকায় ফিরে, অনুপাতটি যদি অযৌক্তিক হয়, তবে খাঁজগুলি চক্রটি coverেকে দেবে! তবে এটি আসলে কিছু যায় আসে না।


5

এখানে অন্য ধারণাটি নিখোঁজ বলে মনে হচ্ছে:

দীর্ঘ দূরত্বের পটভূমির ক্ষেত্রে যেমন আকাশের বাক্সগুলি, প্যারালাক্স স্তরগুলি সত্যই ভাল লাগে না। উদাহরণস্বরূপ তারাগুলি সম্পর্কে চিন্তা করুন, যখন পৃথিবীতে হাঁটছেন, বা রাত জুড়ে আরও ভালভাবে, সমস্ত তারা একসাথে চলে যান, যদিও আমরা জানি যে তারা কয়েকশ বা ভাবনা একে অপরের থেকে হালকা বছর। বিষয়টি হ'ল তারা তাদের দূরত্ব লক্ষ্য করার জন্য আমাদের অনেক দূরে। যা কিছু বলেছে আমরা এখনও একটি খুব বড় টেক্সচার চাই (120k * 120k বলুন), আমাদের সীমিত গণনার শক্তি (যা 8k * 8k সর্বাধিক পরিচালনা করতে পারে) দিয়ে আঁকতে হবে। একাধিক প্যারাল্যাক্স স্তর ব্যবহার করার মতো, আপনার বিভিন্ন ধরণের বিশদ সহ বিভিন্ন টেক্সচার তৈরি করা উচিত। উদাহরণস্বরূপ, একটি গ্যালাক্সির প্রতিনিধিত্ব করে, অন্যটি তারকাদের একগুচ্ছ ইত্যাদি But কিন্তু এবার তাদেরকে বিভিন্ন গতিতে চালিত করার পরিবর্তে তাদের আকারগুলি পৃথক করা উচিত। এখানে একটি উদাহরণ: 3 টেক্সচার ব্যবহার বিবেচনা করুন, একটি 2048 * 2048, অন্যটি 729 * 729 এবং তৃতীয়টি 625 * 625। যেহেতু এই সংখ্যাগুলি একে অপরের সাথে পরিচিত, সুতরাং এই 3 টি টেক্সচারকে 3 স্তরগুলিতে একত্রিত করার সময়, একই জিনিস আঁকতে দেখতে উত্স থেকে এলসিএম (2048,729,625) = 764 এম পিক্সেল সরানো উচিত, যা ধরণের অনন্তর মতো অনুভব করে। প্রকৃতপক্ষে আপনি অন্যান্য স্তর যুক্ত করতে পারেন বা প্রতিটি টেক্সচারের আকার পরিবর্তন করতে পারেন এবং আপনি সর্বদা এর ফলাফল হিসাবে বড় হিসাবে শেষ করতে পারেনটেক্সচার মাপের কমপক্ষে সাধারণ একাধিক


2
এটি এবং @ অ্যালেক্সটিলের উত্তরে সিকাডা প্রিন্সিপাল নামে একটি কৌশল বর্ণনা করা হয়েছে । এটি খুব অল্প সংস্থান সহ অযৌক্তিক, খুব বড় অ-পুনরাবৃত্তি পটভূমি তৈরি করার একটি সহজ উপায়।
মিথ্যা রায়ান

4

এটি একটি প্রক্রিয়াগত পিক্সেল শেডার জন্য কাজ বলে মনে হচ্ছে।

কোনও ছবি ব্যবহার করার সুবিধাগুলি হ'ল:

  • আপনাকে বিশাল বিটম্যাপ সরবরাহ করার দরকার নেই
  • এটি পদ্ধতিগত, সুতরাং এটি কোনও স্থির চিত্র পুনরাবৃত্তি করতে হবে না (এটি অসীমভাবে পরিবর্তিত হতে পারে)
  • আপনি যদি প্যারাল্যাক্স এফেক্ট চান তবে আপনি হাজার হাজার প্লেন সিমুলেট করতে পারবেন যা ইমেজ ব্যবহার করে অযৌক্তিক হবে
  • আপনি ডায়নামিক লাইটিংয়ের মতো খুব অগ্রিম প্রভাবগুলি করতে পারেন
  • বেশিরভাগ প্রসেসিং আপনার জিপিইউ দ্বারা তৈরি করা হয়, আপনার গেমের অন্যান্য অংশের জন্য সিপিইউ বিনামূল্যে রাখে

একটি সাধারণ ওয়েব অনুসন্ধান এই শেডারটিকে http://casual-effects.blogspot.com.au/2013/08/starfield-shader.html এনেছে যা আপনি যা খুঁজছেন তার মতো দেখতে।

আমি ওয়েবজিএলে কোনও বিশেষজ্ঞ নই, তবে এই পৃষ্ঠা অনুসারে , দেখে মনে হচ্ছে এটি নিয়মিত জিএলএসএল ভাষা ব্যবহার করে (প্রোগ্রাম শেডারগুলিতে গ্রাফিক কার্ড ব্যবহার করে এটি সি-লাইক ভাষা)। এর অর্থ এটি কার্যকরভাবে তৈরি করতে আপনার সম্ভবত কিছু পরিবর্তন করতে হবে না।

তবে এটি কীভাবে কাজ করে তা বুঝতে আপনি আরও বেসিক শেডার দিয়ে শুরু করার চেষ্টা করতে পারেন।

এই ব্লগ পৃষ্ঠাটি ওয়েবজিএলে একটি শেডার প্রয়োগের সমস্ত পদক্ষেপের তালিকা করে। এটি শুরু করার জন্য ভাল জায়গা বলে মনে হচ্ছে।

বিস্ময়কর শেডার উদাহরণগুলি খুঁজে পাওয়ার জন্য আর একটি ভাল জায়গা হ'ল https://www.shadertoy.com/


দুর্দান্ত এক ধন্যবাদ !!! আমার এখন উত্তর তুলতে খুব কষ্ট হচ্ছে!
সুপারউবারডুপার

2
ওয়েল, যদি আপনার ছায়াময়ীদের চেষ্টা করার সুযোগ থাকে তবে অবশ্যই এটি এমন একটি বিষয় যা আপনি খুব সুন্দর দেখায় এমন গেম করতে চাইলে দীর্ঘমেয়াদে কার্যকর হবে। প্রথম পদক্ষেপটি কিছুটা উঁচুতে রয়েছে (আমার প্রথম শেডারটি যেভাবে চেয়েছিল তাতে দেখতে 2 সপ্তাহ সময় লেগেছিল) তবে এটি দীর্ঘস্থায়ীভাবেই মূল্যবান।
লেফাউভ

2

আপনি আপনার বড় জেপিগকে একটি ছোট অংশে কাটাতে পারেন এবং সেগুলি (দৃশ্যমান অংশ) রাখতে পারেন, এমনকি আপনাকে এটি সমস্ত সময় কোনও স্মৃতিতে সঞ্চয় করতে হবে না।

এবং পুরানো গেমগুলির মতো কিছু 'টাইলস' পুনরাবৃত্তি করতে পারে। Thats NES কনসোল জন্য সাধারণ সমাধান ছিল, thats এমনকি হার্ডওয়্যার দ্বারা সমর্থিত ছিল।


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

1
আমি সম্মত হই যে পিএনজি আরও ভাল হতে পারে, অন্যদিকে, জেপিজি টেক্সচার 3 ডি গ্রাফিকগুলিতে প্রচলিত রয়েছে এবং আরও গুরুত্বপূর্ণ জেপিইজি এনডেউইকিপিডিয়া.org / উইকি / ম্যাক্রোব্লক ডান কাটনের জন্য 16x16 ব্লক ব্যবহার করছে যদি সর্বনিম্ন কোডিং না করে তবে লক্ষ্য করা যায় না হার।
অ্যালেক্সি শেস্তাকভ 17
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.