ভূখণ্ডের মানচিত্রের টেক্সচারের কয়েকটি উপায় কী?


10

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

তবে আমি যা করতে চাই তা হল একটি বাস্তববাদী টেক্সচার।

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

পদ্ধতিগতভাবে উত্পাদিত ভূখণ্ডকে বাস্তবসম্মতভাবে টেক্সচারের ম্যাপিংয়ের একটি কার্যকর সমাধানের সন্ধান করছি।


1
আপনার ম্যাপিংয়ের বিষয়টি মোটেই তুচ্ছ নয়। কয়েকটি অনুচ্ছেদে এর সঠিক উত্তর দেওয়া যাবে না। আমি আপনাকে সুরেলা ম্যাপিংগুলি এবং এই গবেষণাপত্রে কী ব্যাখ্যা করা হয়েছে তা একবার দেখে নেওয়ার পরামর্শ দিচ্ছি: cs.ubc.ca/~sheffa/papers/TOG02.pdf
teodron

উত্তর:


2

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

https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch01.html

এটি প্রক্রিয়াগতভাবে উত্পন্ন ভূখণ্ডেও কাজ করতে পারে। ধারণাটি "ট্রিপলনার টেক্সচার" নামেও পরিচিত ।

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

VShader:

float tileSize = 2.0;
vec4 worldPos = ( gl_Vertex);//So we obtain the world position

TexCoordX = (worldPos.zy/tileSize);//here are our texture coordinates...
TexCoordY = (worldPos.xz/tileSize);
TexCoordZ = (worldPos.xy/tileSize);
normal =  gl_Normal;
wNormal = normal;

FShader:

vec3 n = wNormal;
n*=n;
vec2 tcX = fract(TexCoordX);
vec2 tcY = fract(TexCoordY);
vec2 tcZ = fract(TexCoordZ);

vec4 grassCol = texture2D(grassTexture,tcX)*n.x+
                texture2D(grassTexture,tcY)*n.y+
                texture2D(grassTexture,tcZ)*n.z;

3

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

টেক্সচারস্লেটিং (চার্লস ব্লুম, আমি এই বিষয়টি দিয়ে শুরু করার জন্য ব্যবহার করতাম)

আপনি খুব দ্রুত, খুব পুরষ্কারযুক্ত বিষয় ভাল চেহারা ফলাফল পেতে সক্ষম হতে হবে

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