বিজোড় টাইলম্যাপ রেন্ডারিং (সীমান্তহীন সংলগ্ন চিত্রগুলি)


18

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

কোনও সিল ছাড়াই টাইলম্যাপ

তবে আপনি ভগ্নাংশ স্কেলিংয়ের সাথে সাথে পরিচয় করিয়ে দেওয়ার সাথে সাথে, সিমগুলি উপস্থিত হবে:

Seams সঙ্গে টাইলম্যাপ

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

আমি যে বিষয়গুলি চেষ্টা করেছি / বিবেচনা করেছি:

  • অ্যান্টিঅ্যালাইজিং হ্রাস করে, তবে সম্পূর্ণরূপে সিমগুলি সরিয়ে দেয় না
  • মিপম্যাপিং বন্ধ করে দেওয়া, এর কোনও প্রভাব নেই
  • প্রতিটি টাইল পৃথকভাবে রেন্ডার করুন এবং 1px দ্বারা প্রান্তগুলি বের করে দিন - তবে এটি একটি ডি-অপ্টিমাইজেশন, যেহেতু এটি আর একসাথে টাইলগুলির অঞ্চলগুলি সরবরাহ করতে পারে না এবং স্বচ্ছতার ক্ষেত্রগুলির প্রান্তের পাশাপাশি অন্যান্য নিদর্শনগুলি তৈরি করে
  • উত্স চিত্রগুলির চারপাশে 1px সীমানা যুক্ত করুন এবং শেষ পিক্সেলগুলি পুনরাবৃত্তি করুন - তবে তারপরে এগুলি আর পাওয়ার-অফ টু হয় না, এনপোট সমর্থন ছাড়াই সিস্টেমগুলির সাথে সামঞ্জস্যতার সমস্যা সৃষ্টি করে
  • টাইল্ড ইমেজগুলি পরিচালনা করতে কাস্টম শেডার লেখা - তবে তারপরে আপনি অন্যভাবে কী করবেন? GL_REPEATসীমান্তে চিত্রের বিপরীত দিক থেকে পিক্সেলটি ধরা উচিত এবং স্বচ্ছতা বাছাই করা উচিত নয়।
  • জ্যামিতিটি হুবহু সংলগ্ন, কোনও ভাসমান পয়েন্টের বৃত্তাকার ত্রুটি নেই।
  • যদি টুকরা শেডারটি একই রঙটি ফেরাতে কঠোরভাবে কোডড থাকে তবে সিমগুলি অদৃশ্য হয়ে যায়
  • অঙ্গবিন্যাস সেট করা হয় যদি GL_CLAMPপরিবর্তে GL_REPEAT, , seams অদৃশ্য (যদিও রেন্ডারিং ভুল)।
  • অঙ্গবিন্যাস সেট করা হয় যদি GL_MIRRORED_REPEAT, , seams অদৃশ্য (যদিও রেন্ডারিং আবার ভুল)।
  • যদি আমি ব্যাকগ্রাউন্ডটি লাল করে তুলি তবে শিগলগুলি এখনও সাদা। এটি প্রস্তাব দেয় এটি স্বচ্ছতার চেয়ে কোথাও থেকে অস্বচ্ছ সাদা নমুনা দিচ্ছে।

সুতরাং seams শুধুমাত্র GL_REPEATসেট করা হয় যখন উপস্থিত হয়। শুধুমাত্র এই মোডে কিছু কারণে জ্যামিতির কিনারায় কিছুটা রক্তপাত / ফুটো / স্বচ্ছতা রয়েছে। যথোপযুক্ত সৃষ্টিকর্তা? পুরো টেক্সচারটি অস্বচ্ছ।


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

1
আপনি কীভাবে কোনওভাবে নিজের জালে ফাটল আনছেন তা সম্ভব? আপনি কোনও টেক্সচারের নমুনা না দিয়ে কেবল একটি শক্ত রঙ ফেরানোর জন্য শেডার সেট করে এটি পরীক্ষা করতে পারেন। আপনি যদি এখনও সেই স্থানে ফাটল দেখতে পান তবে তারা জ্যামিতিতে আছেন in অ্যান্টিয়ালাইজিংয়ের ফলে সীমগুলি হ্রাস হওয়ার বিষয়টি বোঝায় যে এটাই সমস্যা হতে পারে, কারণ অ্যান্টিয়ালাইজিং টেক্সচারের নমুনাটিকে প্রভাবিত করে না।
নাথান রিড 16

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

সমন্বিত দিকনির্দেশে GL_NEARESTনমুনা সহ 3 ডি টেক্সচার এই দৃশ্যের বেশিরভাগ জিনিসের Rজন্য ঠিক পাশাপাশি অ্যারে টেক্সচারও কাজ করে । মাইপম্যাপিং কাজ করছে না, তবে আপনার অ্যাপ্লিকেশন দ্বারা বিচার করা আপনার সম্ভবত সম্ভবত এমপম্যাপের দরকার নেই।
অ্যান্ডন এম। কোলেম্যান

1
কীভাবে উপস্থাপনাটি "ভুল" হয়, যখন ক্ল্যাম্প সেট করা হয়?
মার্টিজন কোর্টও

উত্তর:


1

সিএলগুলি GL_REPEAT সহ নমুনা দেওয়ার সঠিক আচরণ। নিম্নলিখিত টাইল বিবেচনা করুন:

সীমানা টাইল

ভগ্নাংশের মান ব্যবহার করে টাইলের প্রান্তগুলিতে নমুনাটি প্রান্ত এবং বিপরীত প্রান্ত থেকে রঙ মিশ্রিত করে যার ফলে ভুল রঙ আসে: বাম প্রান্তটি সবুজ হওয়া উচিত, তবে সবুজ এবং বেইজ থেকে মিশ্রণ। ডান প্রান্তটি বেইজ হতে হবে তবে এটি একটি মিশ্র রঙও। বিশেষত সবুজ পটভূমিতে বেইজ লাইনগুলি খুব দৃশ্যমান তবে আপনি যদি ঘনিষ্ঠভাবে তাকান তবে আপনি সবুজ রক্তপাতটি প্রান্তে দেখতে পারেন:

স্কেলযুক্ত টাইল

অ্যান্টিঅ্যালাইজিং হ্রাস করে, তবে সম্পূর্ণরূপে সিমগুলি সরিয়ে দেয় না

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

সম্ভাব্য সমাধান:

কোনও ক্ষেত্রেGL_CLAMP জমিনের বিপরীত দিকে পিক্সেল থেকে রক্তপাত রোধ করতে আপনার স্যুইচ করা উচিত । তারপরে আপনার কাছে তিনটি বিকল্প রয়েছে:

  1. টাইলগুলির মধ্যে কিছুটা রূপান্তর মসৃণ করতে অ্যান্টি-এলিয়াসিং সক্ষম করুন।

  2. টেক্সচার ফিল্টারিং এ সেট করুন GL_NEAREST। এটি সমস্ত পিক্সেলকে শক্ত প্রান্ত দেয়, সুতরাং বহুভুজ / স্প্রাইট প্রান্তগুলি পৃথক পৃথক হয়ে উঠতে পারে তবে এটি স্পষ্টতই গেমটির স্টাইলকে কিছুটা পরিবর্তন করে।

  3. ইতিমধ্যে আলোচিত 1 পিএক্স সীমানা যুক্ত করুন, কেবল সীমানায় সংলগ্ন টাইলের রঙ রয়েছে (এবং বিপরীত প্রান্তের রঙ নয়) তা নিশ্চিত করুন।

    • টেক্সচার অ্যাটলাসে স্যুইচ করার জন্য এটি ভাল সময় হতে পারে (আপনি যদি এনপিওটি সমর্থন সম্পর্কে উদ্বিগ্ন হন তবে এটি আরও বড় করুন)।
    • এই একমাত্র "নিখুঁত" সমাধান, GL_LINEARবহুভুজ / স্প্রাইটের প্রান্ত জুড়ে-ফিল্টারিং- সক্ষম করা ।

ওহ, ধন্যবাদ - টেক্সচারের চারপাশে মোড়ানো এটি ব্যাখ্যা করে। আমি সেই সমাধানগুলি সন্ধান করব!
অ্যাশলেব্রাইন

6

কারণ ডিফল্টরূপে ওপেনএল কেবলমাত্র পুরো টেক্সচারটি (GL_REPEAT) গুটিয়ে রাখতে পারে, এবং কেবলমাত্র এর অংশ নয়, প্রতিটি টাইল পৃথক জমিনে বিভক্ত হয়। তারপরে একই টাইলের অঞ্চল একে অপরের সাথে সংলগ্ন হয়।

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

(বিবেচনা করুন যে পুরো মানচিত্রের চারটি কোণ ব্যতীত আপনার এমনকি শীর্ষগুলি প্রয়োজন নাও হতে পারে ... শেডিংয়ের ক্ষেত্রে আপনার পদ্ধতির উপর নির্ভর করে))

সমাধানের জন্য: (1: 1 এ) আপনার সমস্ত টাইল টেক্সচারকে কোনও ফাঁক ছাড়াই কোনও এফবিও / আরবিওতে রেন্ডার করুন , তারপরে সেই FBO কে ডিফল্ট ফ্রেমবফারকে (স্ক্রিনে) প্রেরণ করুন। যেহেতু এফবিও নিজেই মূলত একটি একক টেক্সচার, আপনি স্কেলিংয়ের ফাঁক দিয়ে শেষ করতে পারবেন না। স্ক্রিন পিক্সেল সীমানায় না পড়ে এমন সমস্ত টেক্সেল সীমানা মিশ্রিত হতে চলেছে যদি আপনি জিএল_লাইনআর ব্যবহার করেন .... যা আপনি চান ঠিক তেমনই। এটি স্ট্যান্ডার্ড অ্যাপ্রোচ।

এটি স্কেলিংয়ের জন্য বিভিন্ন রুটও খোলে:

  • কোয়াডের আকারটি স্কেলিং যা আপনি এফবিও রেন্ডার করবেন
  • সেই কোয়াডে ইউভিগুলি পরিবর্তন করা
  • ক্যামেরা সেটিংসের সাথে ফিডিং

আমি মনে করি না এটি আমাদের পক্ষে ভালভাবে কাজ করবে। দেখে মনে হচ্ছে আপনি প্রস্তাব দিচ্ছেন যে 10% জুমে আমরা কোনও অঞ্চলকে 10 গুণ বড় করে দেব। সীমিত পূরণের হার সহ ডিভাইসগুলির জন্য এটি ভালভাবে জোর দেয় না। এছাড়াও আমি এখনও রহস্যজনক যে কেন বিশেষত GL_REPEAT কেবলমাত্র seams তৈরি করে এবং অন্য কোনও মোড তা করে না। এটা কিভাবে হতে পারে?
অ্যাশলেব্রাইন 22:55

পুনঃটুইট আমি মিস্টিফাইড আপনার বিবৃতি দ্বারা। দয়া করে ব্যাখ্যা করুন কীভাবে 10% বাড়িয়ে জুম 10% বাড়িয়ে রেট পূরণ করে? বা কীভাবে 10x বাড়িয়ে জুম বাড়ায় - যেহেতু ভিউপোর্ট ক্লিপিং একক পাসে 100% এর বেশি পূরণের হারকে আটকাতে পারে? আরটিটি, একটি সাধারণ কৌশল ব্যবহার করে আপনার চূড়ান্ত আউটপুটকে একীভূত করে আপনি ইতিমধ্যে কীভাবে আরও কার্যকর এবং বিরামবিহীন ফ্যাশন তৈরি করতে চান - ঠিক ইতিমধ্যে আপনি কী চান তা প্রদর্শন করার পরামর্শ দিচ্ছি । হার্ডওয়্যার ভিউপোর্ট ক্লিপিং, স্কেলিং, মিশ্রন এবং ইন্টারপোলেশন কার্যত কোনও ব্যয় ছাড়াই পরিচালনা করবে, এটি কেবলমাত্র একটি 2D ইঞ্জিন।
প্রকৌশলী

@ অ্যাশলেব্রেইন আমি আপনার বর্তমান পদ্ধতির স্ফটিকটি পরিষ্কার করার জন্য আমার প্রশ্নটি সম্পাদনা করেছি।
প্রকৌশলী

@ আর্কানএঞ্জাইনার হাই, আমি আপনার পদ্ধতির চেষ্টা করেছি যা পুরোপুরি Seams ইস্যু সমাধান করে। তবে, এখন, সিমগুলির পরিবর্তে আমার পিক্সেল ত্রুটি রয়েছে। আমি এখানে উল্লেখ করছি ইস্যু সম্পর্কে আপনার ধারণা থাকতে পারে । এর কারণ কী হতে পারে আপনার কোনও ধারণা আছে? মনে রাখবেন যে আমি ওয়েবজিএলে সব করছি।
নিমিকোলহ

1
@ আরাকানএঞ্জাইনার আমি একটি নতুন প্রশ্ন জিজ্ঞাসা করব, এখানে ব্যাখ্যা করা খুব জটিল। ক্ষোভের জন্য আমি দুঃখিত
নেমিকোলহ

1

যদি চিত্রগুলি একটি পৃষ্ঠ হিসাবে প্রদর্শিত হয় তবে এগুলিকে একটি 3 ডি জাল / সমতলতে একটি পৃষ্ঠের গঠন (স্কেল 1x) হিসাবে রেন্ডার করুন। যদি আপনি প্রতিটি পৃথক 3 ডি অবজেক্ট হিসাবে রেন্ডার করেন তবে এটি সর্বদা গোলাকার ত্রুটির কারণে seams থাকবে have

@ নিক-উইগগিলের উত্তর সঠিক, আমার ধারণা আপনি এটি ভুল বুঝেছেন।


0

2 সম্ভাবনা যা চেষ্টা করার মতো হতে পারে:

  1. আপনার টেক্সচার ফিল্টারিং এর GL_NEARESTপরিবর্তে ব্যবহার করুন GL_LINEAR((অ্যান্ডন এম। কোলম্যানের দ্বারা নির্দেশিত)

    GL_LINEAR(কার্যকরভাবে) ইমেজটিকে এতটা সামান্য ঝাপসা করে দেবে (নিকটস্থ পিক্সেলের মধ্যে বিভক্ত), যা এক পিক্সেল থেকে পরের পর্দায় রঙের মসৃণ রূপান্তর করতে দেয়। এটি টেক্সচারকে অনেক ক্ষেত্রে আরও ভাল দেখায় সহায়তা করতে পারে, কারণ এটি আপনার টেক্সচারগুলিকে সমস্তরকম ব্লক পিক্সেল রাখার হাত থেকে বাঁচায়। এটি এটিকেও তৈরি করে যাতে এক টাইল ওভারের এক পিক্সেল থেকে কিছুটা বাদামী সংলগ্ন টাইলের সংলগ্ন সবুজ পিক্সেলের কাছে ঝাপসা হয়ে যায়।

    GL_NEARESTকেবল নিকটতম পিক্সেলটি সন্ধান করে এবং সেই রঙটি ব্যবহার করে। কোনও বিরক্তি নেই। ফলস্বরূপ, এটি আসলে কিছুটা দ্রুত।

  2. প্রতিটি টাইলের জন্য টেক্সচার সমন্বয়গুলি সামান্য সঙ্কুচিত করুন।

    বাফার হিসাবে প্রতিটি টাইলের চারপাশে অতিরিক্ত পিক্সেল যুক্ত করার মতো বাছাই করুন, চিত্রটিতে টাইলটি প্রসারিত না করে আপনি সফ্টওয়্যারটিতে টাইলটি সঙ্কুচিত করুন। 16x16px টাইলগুলির পরিবর্তে 14x14px টাইলগুলি রেন্ডারিংয়ের সময়।

    আপনি এমনকি খুব বেশি বাদামী মিশ্রিত না করে 14.5x14.5 টাইলস দিয়ে পালাতে সক্ষম হতে পারেন।

--edit--

অপশন # 2 এ ব্যাখ্যাটির ভিজ্যুয়ালাইজেশন

উপরের ছবিতে প্রদর্শিত হিসাবে, আপনি এখনও সহজেই দুটি টেক্সচারের শক্তি ব্যবহার করতে পারেন। সুতরাং আপনি এমন হার্ডওয়্যারকে সমর্থন করতে পারেন যা এনপোট টেক্সচার সমর্থন করে না। কি পরিবর্তনগুলি আপনার জমিন স্থানাঙ্ক, পরিবর্তে থেকে যাচ্ছে হল (0.0f, 0.0f)থেকে (1.0f, 1.0f)আপনি এর থেকে যেতে চাই (0.03125f, 0.03125f)থেকে (0.96875f, 0.96875f)

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


আমি ইতিমধ্যে উল্লেখ করেছি আমি GL_NEAREST (ওরফে পয়েন্ট ফিল্টারিং) চেষ্টা করেছি এবং এটি ঠিক করে না। আমি # 2 করতে পারি না কারণ আমার এনপোট ডিভাইসগুলি সমর্থন করা দরকার।
অ্যাশলেব্রাইন

এমন একটি সম্পাদনা করেছেন যা কিছু জিনিস পরিষ্কার করতে পারে। (আমি ধরে নিচ্ছি যে "" এনপটকে সমর্থন করা দরকার [[দুই-অ-বিদ্যুত্)) "ডিভাইসগুলি" বোঝানোর অর্থ আপনার পংক্তি বরাবর এমন কিছু বোঝানো যা টেক্সচারগুলিকে 2 এর শক্তিতে রাখতে হবে?)
ওল্ফগ্যাং স্কাইলার

0

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

আমি কেন এই পরামর্শ দিচ্ছি? কারণ আমার অভিজ্ঞতা থেকে, शिरোখণ্ডের শেডার থেকে বেরিয়ে আসার সময় যদি শীর্ষগুলি ঠিক একই স্থানাঙ্ক থাকে তবে সংশ্লিষ্ট ত্রিভুজগুলি পূরণ করা বিজোড় ফলাফল তৈরি করবে। মনে রাখবেন যে কিছু গাণিতিকভাবে সঠিক, আইইইই এর কারণে কিছুটা দূরে থাকতে পারে। আপনি আপনার সংখ্যাগুলিতে যত বেশি গণনা সম্পাদন করেন, ফলাফল তত কম নির্ভুল হবে। এবং হ্যাঁ, ম্যাট্রিক্স গুণনের জন্য বেশ কয়েকটি অপারেশন দরকার যা আপনার ভিবিও তৈরি করার সময় কেবলমাত্র একটি গুণ এবং সংযোজনে সম্পন্ন হতে পারে যা আরও সঠিক ফলাফল দেয় give

সমস্যাটি কী হতে পারে তা হ'ল আপনি একটি স্প্রিটশিট ব্যবহার করছেন (এটি অ্যাটলাসও বলা হয়) এবং টেক্সচারটি স্যাম্পল করার সময় সংলগ্ন টাইল টেক্সচারের পিক্সেল বাছাই হয়ে যায়। এটি না ঘটে তা নিশ্চিত করার জন্য ইউভি ম্যাপিংগুলিতে একটি ছোট্ট সীমানা তৈরি করা। সুতরাং, আপনার যদি 64x64 টাইল থাকে, আপনার ইউভি ম্যাপিংটি কিছুটা কম কভার করা উচিত। কত? আমি মনে করি যে আমি আমার গেমগুলিতে আয়তক্ষেত্রের প্রতিটি পাশের পিক্সেলের 1 চতুর্থাংশ ব্যবহার করেছি। সুতরাং এক্স উপাদানগুলির জন্য আপনার ইউভি'র 1 / (4 * প্রস্থঅফট্যাটাস) এবং y উপাদানগুলির জন্য 1 / (4 * উচ্চতাঅফট্যাটাস) অফসেট করুন।


ধন্যবাদ, তবে আমি ইতিমধ্যে লক্ষ করেছি যে জ্যামিতিটি অবশ্যই হুবহু সংলগ্ন - বাস্তবে সমস্ত সমন্বয়গুলি সঠিক সংখ্যার ফলাফল করে, তাই এটি বলা সহজ। এখানে কোনও অ্যাটলেস ব্যবহার করা হয় না।
অ্যাশলেব্রাইন 10

0

এটি 3 ডি স্পেসে সমাধান করার জন্য, আমি ওল্ফগ্যাং স্কাইলারের পরামর্শের সাথে টেক্সচার অ্যারেগুলি মিশ্রিত করেছি। আমি প্রতিটি টাইল (120x120, 128x128 মোট) এর জন্য আমার আসল টেক্সচারের চারপাশে একটি 8-পিক্সেল সীমানা রেখেছিলাম, যা প্রতিটি পক্ষের জন্য, যা আমি "মোড়ানো" চিত্র বা কেবল প্রসারিত হওয়ার দিক দিয়ে পূরণ করতে পারি। যখন চিত্রটি ছড়িয়ে দিচ্ছে তখন নমশাকারী এই অঞ্চলটি পড়ে।

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

আপনার ক্ষেত্রে (2 ডি / ফ্ল্যাট), আমি অবশ্যই একটি পিক্সেল নিখুঁত দৃশ্য রেন্ডারিং সহ যাব, এবং তারপরে ফলাফলের কাঙ্ক্ষিত অংশটি ভিউপোর্টে স্কেলিং করব, নিক উইগগিলের পরামর্শ অনুসারে।

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