টেক্সচারিংয়ের জন্য সেরা (সর্বাধিক জনপ্রিয়?) চিত্র ফর্ম্যাট [বন্ধ]


13

ঠিক আছে, তাই আমি ওপেনজিএল দিয়ে সি ++ ব্যবহার করছি এবং আমি আমার 3 ডি গেমের জন্য টেক্সচারে লোড করতে একটি লোডার তৈরি করতে যাচ্ছি। (তবে টেক্সচারটি 2 ডি)। আমি স্বচ্ছতার বিকল্প চাই, যদিও আমি এটি ব্যবহার না করার সিদ্ধান্ত নিয়েছি। আমার শালীন গুণমান প্রয়োজন, যদিও এটি শীর্ষ দশমিক হতে হবে না। ছেলেরা বিন্যাসের জন্য কী পরামর্শ দেয় (পিএনজি, টিজিএ ইত্যাদি)। এছাড়াও, সম্ভবত এটিকে এমন কিছু তৈরি করুন যা এর জন্য লোডার তৈরি করা সহজ (আমি ইতিমধ্যে তৈরি হওয়া ব্যবহার করতে যাচ্ছি না))। এবং এছাড়াও, আপনার যদি লোডারটির সাথে সহায়তা করার জন্য কোনও লিঙ্ক / টিপস থাকে তবে এটি প্রশংসিত হবে।

উত্তর:


15

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

কিছুটা অস্বাভাবিক প্রয়োজনের কারণে, টিজিএ সম্ভবত আপনার সেরা বেট। টিজিএ ২.০ এর একটি আলফা চ্যানেল রয়েছে এবং এটি পিএনজির তুলনায় তুলনামূলকভাবে সহজ।


3
টিজিএর জন্য +1 যদি ওপি নিজের লিখতে চায়। আমি আমার নিজের টিজিএ লোডারটি একবার লিখেছি। তাই দ্রুত এবং বেদাহীন।
কমিউনিস্ট হাঁস

4
@ হাঁস: যতক্ষণ আপনি সংক্ষেপণ বা কোনও অভিনব বৈশিষ্ট্য ছাড়াই সাধারণ টিজিএগুলি করছেন ততক্ষণ বেদনাদায়ক। আপনি যদি সম্পূর্ণরূপে অনুগত টিজিএ লোডার চান তবে আমি খুঁজে পেয়েছি এটি কিছুটা ব্যথা। এটি একটি অদ্ভুত বিন্যাস সাজানোর।
জোর্বাথুত

1
@ জোর্বা, সংক্ষেপগুলি যথেষ্ট সহজ। এটি কেবল আপনি এক্সটেনশনের জন্য যত্নশীল কিনা।
ডিসলেরেটকাভিয়ার

10

চিত্র টেক্সচার বিন্যাসটিও একটি পারফরম্যান্স পছন্দ। আমি আপনাকে যতটা সম্ভব সংকুচিত টেক্সচার ব্যবহার করার পরামর্শ দিচ্ছি। মোবাইল প্ল্যাটফর্মে, এটি দুর্দান্ত কর্মক্ষমতা (40% বা আরও বেশি), মেমরির ব্যবহার এবং সময় লোডিং উন্নত করতে পারে।

একটি টেক্সচার বিবেচনা করুন 1024 * 1024:

  • আরজিবি বা আরজিবিএ (১bits বিট): 2Mo (এসজিএসে লোড করার জন্য .5 এস)
  • আরজিবিএ (32 বিট): 4 এমও (এসজিএসে লোড করতে 1s)
  • পিভিআরটি (4 বিপিপি): 512ko (এসজিএসে লোড করার জন্য .125s)
  • ETC1 + আলফা: 1.5Mo (এসজিএসে লোড করতে .4 এস)

আমাদের গেমগুলিতে, আমাদের অনেক ফর্ম্যাটে সম্পদ (টেক্সচার) রয়েছে:

  • ডিএক্সটিসি টেক্সচারের জন্য ডিডিএস ফর্ম্যাট (ডেস্কটপ প্ল্যাটফর্ম: ওএস এক্স, লিনাক্স, উইন্ডোজ এবং তেগ্রা)
  • এটিসি টেক্সচারের জন্য ডিডিএস ফর্ম্যাট (Andreno GPUs)
  • পিভিআরটি ফর্ম্যাটের জন্য পিভিআর ফর্ম্যাট (পাওয়ারভিআর জিপিইউ)
  • ETC1 টেক্সচারের জন্য পিকেএম ফর্ম্যাট (সমস্ত OGLES 2.0 ডিভাইসগুলির তুলনামূলক)

শেষ অবধি, আমরা সামঞ্জস্যের জন্য কাঁচা ফর্ম্যাট ব্যবহার করি তবে এটি সামঞ্জস্যতা বা জিইউআই উপাদানগুলির জন্য

  • কাঁচা জমিনের জন্য পিএনজি ফর্ম্যাট। এটি আরজিবিএ 16, 24 বা 32 বিট টেক্সচারের জন্য (আমরা একটি এমআইটি লাইসেন্সযুক্ত লোডার ব্যবহার করি)। এটি সঙ্কুচিত টেক্সচার।

ETC1 টেক্সচারে কোনও আলফা চ্যানেল নেই তাই আমরা দুটি টেক্সচার (আরজিবি টেক্সচার এবং আলফা টেক্সচার) সহ একটি বিশেষ শেডার ব্যবহার করি। সংকুচিত ফর্ম্যাটটি লোড করা খুব সহজ (100 বা 200 লোক)।

ডেস্কটপে, ডিএক্সটিসি (এস 3 টিসি) অনেকগুলি কার্ডে উপস্থিত। সুতরাং, আপনি জোরে এটি ব্যবহার।

সংকুচিত টেক্সচার

স্বপক্ষে

  • টেক্সচার ফিল্রেট উন্নত
  • টেক্সচার লোডিং (4x বা তার বেশি)
  • লোড করা সহজ

বিরূদ্ধে

  • সমস্ত প্ল্যাটফর্মে সমর্থিত নয়
  • শিল্পকর্ম

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

8

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

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

এগুলি সূক্ষ্ম চিত্রের ফর্ম্যাট, তবে এগুলি টেক্সচার বিন্যাসগুলি খারাপ করে।

ডিডিএস হ'ল টেক্সচার ফর্ম্যাটগুলির সম্মুখতম রানার কারণ এটি আসলে টেক্সচারের প্রয়োজনীয় জিনিসগুলিকে সমর্থন করে। এটি মিপম্যাপ এবং কিউব্যাপগুলি সমর্থন করে। এটি 3 ডি টেক্সচার সমর্থন করে। ডিডিএসভি 10 অ্যারের টেক্সচার সমর্থন করে। আপনি কোনও ডিডিএসের মধ্যে একক টেক্সচারটি এমনভাবে প্যাকেজ করতে পারেন যেভাবে আপনি পিএনজি বা টিজিএর সাথে পারলেন না।

ডিডিএস সঙ্কুচিত এবং সংকুচিত টেক্সচার ডেটা সমর্থন করে। সংকীর্ণ টেক্সচার বিন্যাসটি এতক্ষণে DXT / বিসি টেক্সচার ফর্ম্যাটগুলির মধ্যে একটি।

পিকেএম ইটিসি 1-সংক্ষেপিত চিত্রগুলির প্যাকেজিংয়ের জন্য দরকারী, তবে পিএনজির মতো এটি প্রকৃত টেক্সচার বৈশিষ্ট্যগুলিকে সমর্থন করে না।

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

সুতরাং ডিডিএস বিস্তৃত টেক্সচার সাপোর্টের ক্ষেত্রে জিতেছে।


2
বৈশিষ্ট্যগুলির জন্য খাঁটি কথা বলতে, টিআইএফএফ ডিডিএস এবং আরও অনেক কিছু করে supports আলফা ছাড়াও দূর-আইআর, কাছের-আইআর, আর, জি, বি এবং ইউভি চ্যানেলগুলির সাথে একটি টেক্সচার চান? চ্যানেল প্রতি 64 বিট আইইইইই ভাসমান-পয়েন্টে? চ্যানেলের উপযোগী হিসাবে বিভিন্ন সংখ্যক অ্যালগোরিদম (JPEG এবং JPEG2000 সহ) দ্বারা সঙ্কুচিত? ফাইল প্রতি একাধিক চিত্র এবং তাদের প্রত্যেকের জন্য সমৃদ্ধ মেটাডেটা? এটি এগুলি এবং আরও অনেক কিছু করতে পারে। এটি কিছু সময়ের পর থেকে ফটোশপের "নেটিভ" ফর্ম্যাটও। এখন, এটির জন্য কোনও লোডার লেখার জন্য ...
মার্টিন সোজকা

আমাকে ডিডিএস পাত্রে কেবল ডিএক্সটি / বিসি টেক্সচার ফর্ম্যাট ব্যবহারের প্রয়োজনীয়তা সম্পর্কে আরও তথ্য যুক্ত করার অনুমতি দিন; মনে হয় এটি কেস নয়। আমি কম্প্রেসনেটরকে বিভিন্ন সংক্ষেপণ বিন্যাস এবং আউটপুট সকলের জন্য .dds হিসাবে ব্যবহার করতে দেখেছি (এর ক্লিপটি কার্যকর করার সময় সহায়তা আউটপুট থেকে এই ইঙ্গিতটি দেখতে পারে) এবং এসওতে এই (উত্তর) উত্তর দিয়েছিলেন যে আপনি যে কোনও সংকোচনের বিন্যাস ব্যবহার করতে পারেন (আলাদা ফোরসিসি সেট করে তারপরে নিজেরাই পরিচালনা করুন)।
হ্যাক্স্পোর

1
@ হ্যাক্স্পোর: আপনি একটি ফাইলের মধ্যে যা খুশি তা নাড়াচাড়া করতে এবং এটি ডিডিএস বলতে পারেন। প্রশ্নটি হ'ল যে অ্যাপ্লিকেশনটি সাধারণ ডিডিএস ফাইলগুলি পড়তে পারে সেগুলি কি আপনার পড়তে সক্ষম হবে, বা এটি করার জন্য এটি বিশেষভাবে কোডিং করতে হবে? ডিডিএস ফর্ম্যাটটি কেবলমাত্র ডিএক্সটি / বিসি সংক্ষেপণের ফর্ম্যাটগুলি নির্দিষ্ট করে (এবং আমি মনে করি আজকাল এএসটিসি)। আপনি যদি অন্য ফর্ম্যাটটি ব্যবহার করেন তবে প্রোগ্রামটি এটি লেখার এবং এটি পড়ার প্রোগ্রামের মধ্যে রয়েছে between কিন্তু যে বেশ অনেক সত্য কোন ইমেজ বিন্যাস।
নিকল বোলাস

@ নিকলবোলাস সংক্ষেপে জানাতে ধন্যবাদ। আমি মনে করি এটাই।
হ্যাক্স্পোর

5

খ্রোনস গ্রুপ ওপেনজিএল এবং ওপেনজিএল ইএস অ্যাপ্লিকেশনগুলির জন্য টেক্সচার সংরক্ষণ করার জন্য কেটিএক্স ফাইল ফর্ম্যাটের প্রস্তাব দেয়। এই ফর্ম্যাটটি নিয়ে কাজ করার জন্য আপনি libktx ব্যবহার করতে পারেন ।

বৈশিষ্ট্য:

  • কোনও কেটিএক্স ফাইল থেকে একটি ওপেনলএল টেক্সচার ইনস্ট্যান্ট করুন
  • যখন হার্ডওয়ারটিতে ETC1 সমর্থন না থাকে তখন একটি ETC1 সংকুচিত টেক্সচার চিত্রটি সঙ্কোচিত করুন।
  • টেক্সচারটি লোড হওয়ার সাথে সাথে কেটিএক্স ফাইল থেকে কী-মান জোড়াগুলির একটি হ্যাশ টেবিল তৈরি করুন
  • উত্স চিত্রগুলির একটি অ্যারে থেকে একটি কেটিএক্স ফাইল এবং কী-মান জোড়াগুলির একটি alচ্ছিক হ্যাশ টেবিল লিখুন।
  • কী-মান জোড়াগুলির একটি হ্যাশ টেবিলটি তৈরি এবং পপুলেট করুন।

3

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

উদাহরণস্বরূপ, এখানে ওপেনজিএল লোডার রয়েছে


আপনার উত্তরটি কিছুটা বিভ্রান্তিকরভাবে শব্দযুক্ত। ওডিজিএলে ডিডিএস সমর্থিত তা বলার অপেক্ষা রাখে না। ওপেনজিএল ইমেজ ফর্ম্যাটগুলির সাথে কাজ করে না।
rdb

3

এখানে অনেকগুলি বিবেচনা রয়েছে:

  1. আপনি টেক্সচারটি ডিস্কের বাইরে এবং সিস্টেমে মেমরিটিতে কত দ্রুত পেতে পারেন।
  2. আপনি সিস্টেম মেমরি থেকে জিপিইউতে টেক্সচারটি কত দ্রুত পেতে পারেন (আপনার ক্ষেত্রে glTexImage2D এর মাধ্যমে)।
  3. আপনার বাজেটে কত ডিস্ক স্পেস এবং ভিডিও র‍্যামের সঞ্চয়স্থান রয়েছে।
  4. পারফরম্যান্স এবং মান।

টিজিএ একটি ভাল পছন্দ কারণ 24 এবং 32 বিট সঙ্কুচিত ক্ষেত্রে আপনি একক ফ্রেড / যে কোনও উপায়ে ডেটা পড়তে পারেন এবং ফলাফলটি সরাসরি প্রক্রিয়া ছাড়াই glTexImage2D এর মাধ্যমে প্রেরণ করতে পারেন। এটি একটি খারাপ পছন্দ কারণ এটির মধ্যে সবচেয়ে বড় ফাইলের আকার থাকতে পারে এবং যদি ডিস্ক I / O বাধা হয় তবে আপনার পড়া ধীরে ধীরে হবে।

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

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

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

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


1
"ডিডিএস বেশিরভাগ গ্রাহক পিসি হার্ডওয়্যারে স্থানীয়ভাবে সমর্থিত হয়" ডিডিএস হ'ল বিভিন্ন ফর্ম্যাটের ধারক। আপনি কোনও জিডিইউতে কোনও ডিডিএস ফাইল পাস করবেন না, তবে এর সামগ্রীগুলি!
তারা

0

এবং অবশ্যই আপনি সর্বদা পুরানো 32 বিট বিএমপি নিয়ে যেতে পারেন যা লোড করা সত্যিই সহজ (বিশেষত যদি আকার 2 এর শক্তি হয় (আসলে, 8 বাইটের আইআইআরসি এর একাধিক))।

অন্যথায় এটি অদ্ভুত বলে মনে হচ্ছে যে আপনি কেবল একটি ফর্ম্যাট চান, jpg দুর্দান্ত রিয়েল ওয়ার্ল্ড হাই রিস টেক্সচারের জন্য সত্যিই দুর্দান্ত (জেপিগ ডিস্কস্পেস এবং (ডাউন) লোড-টাইম দিয়ে মার্ভেল করে), স্বচ্ছতার জন্য পিএনজি এবং কনট্রোল-টেক্সচারের জন্য মাঝে মাঝে 32 বিটি বিএমপি করে (কোনও স্ক্রিপ্ট বা 'দ্রুত এবং নোংরা' সরঞ্জাম থেকে তৈরি করা সহজ)।

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