ওপেনজিএলে ক্লিপ স্পেসের 4 টি মাত্রা রয়েছে কেন?


13

আমি এটিকে জেনেরিক রেফারেন্স হিসাবে ব্যবহার করব তবে অনলাইনে ডক্স এবং বইগুলি যত বেশি ব্রাউজার করব, সে সম্পর্কে আমি তত কম বুঝতে পারি।

const float vertexPositions[] = {
    0.75f, 0.75f, 0.0f, 1.0f,
    0.75f, -0.75f, 0.0f, 1.0f,
    -0.75f, -0.75f, 0.0f, 1.0f,
};

এই অনলাইন বইতে একটি ত্রিভুজ তৈরি সম্পর্কে ওপেনএল-এর প্রথম এবং ক্লাসিক হ্যালো ওয়ার্ল্ড কীভাবে আঁকতে হবে তার একটি উদাহরণ রয়েছে।

উপরের কোডে বর্ণিত অনুসারে ত্রিভুজের জন্য শীর্ষস্থানীয় কাঠামো ঘোষিত হয়েছে।

বইটি, অন্যান্য অন্যান্য উত্স হিসাবে, এই বিষয়টিতে জোর দিয়েছিল যে ক্লিপ স্পেস একটি 4D কাঠামো যা মূলত সিদ্ধান্ত নিতে ব্যবহৃত হয় কী স্ক্রিনে rasterized এবং রেন্ডার করা হবে।

এখানে আমার প্রশ্নগুলি রয়েছে:

  • আমি 4 ডি তে কিছু কল্পনা করতে পারি না, আমি মনে করি না যে কোনও মানুষ এটি করতে পারে, এই ক্লিপ জায়গার জন্য 4D কী?
  • আমি যে সর্বাধিক মানব-পঠনযোগ্য ডকটি পড়েছি তা একটি ক্যামেরা সম্পর্কে কথা বলে, যা কেবল ক্লিপিং ধারণার উপরে একটি বিমূর্ততা এবং আমি বুঝতে পারি যে, কেন প্রথম স্থানে ক্যামেরা ধারণাটি ব্যবহার করা হচ্ছে না যা আরও বেশি পরিচিত 3 ডি কাঠামো? ক্যামেরার ধারণার সাথে একমাত্র সমস্যা হ'ল আপনাকে সম্ভাব্যতাটিকে অন্য উপায়ে সংজ্ঞায়িত করতে হবে এবং সুতরাং মূলত আপনি কী ধরণের ক্যামেরা রাখতে চান সে সম্পর্কে আপনাকে আরও একটি বিবৃতি যুক্ত করতে হবে।
  • আমার এটা কীভাবে পড়ার কথা 0.75f, 0.75f, 0.0f, 1.0f? আমি যা পাই তা হ'ল এগুলি সবগুলি ভাসমান মান এবং আমি প্রথম 3 টি মানটির অর্থ পাই, এটি শেষটির অর্থ কী?

4
চতুর্থ অধ্যায় চতুর্থ উপাদানটি ঠিক কী ব্যাখ্যা করে। আসলে, স্ক্র্যাচ যে; অধ্যায় 1 ক্লিপ-টু-এনডিসি রাস্টারাইজেশান বিভাগে রুপান্তর অর্ধেক নিচে ব্যাখ্যা
নিকল বোলাস

2
@ নিকলবোলাস লেখক প্রথম অধ্যায়ে তার ব্যাখ্যা দিয়েছেন এবং পরবর্তী অধ্যায়গুলির জন্য কোনও রেফারেন্স রাখেন না, তিনি কিছু সি ++ কোড মন্তব্য করার পরে কী ঘটেছিল তা ব্যাখ্যা করার ভান করেন এবং সমস্যাটি হ'ল তিনি যদি সমস্ত কিছু পুরোপুরি ব্যাখ্যা না করেন তবে 1 অধ্যায়টি আমি 4 নম্বর অধ্যায়ের প্রথম স্থানে যা জানতে চাইছি তা রাখার পক্ষে খুব একটা অর্থবোধ করে না, বিশেষ করে যদি 1 অধ্যায়ে অন্তর্ভুক্ত কী তা ডিকোড করার জন্য আমার এই ধারণাগুলি প্রয়োজন হয়। আমি এখন এটি পড়ছি, এবং কেবল 1 বার নয়, এখন আমি জানি যে উত্তরটির জন্য আমার আরও সন্ধান করা উচিত, আমি বিভিন্ন অধ্যায়ে কূলে যাব।
ব্যবহারকারী 827992

1
আপনার কোনও কিছুর ডিকোড করার দরকার নেই; এটি অধ্যায় 1 এ বলা হয়েছে: ডাব্লু উপাদানটি 3 টি অন্যান্য উপাদানগুলিতে বিভক্ত। এটি ভূমিকাটিতেও বলা হয়েছিল। ৪ র্থ অধ্যায় অবধি যা বন্ধ রয়েছে তা কেন ওপেনজিএল এটি করে। এটি পরে অবধি বন্ধ ছিল কারণ এটি হাতের কাজটির সাথে অপ্রাসঙ্গিক।
নিকল বোলাস

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

1
এই উত্তর সাহায্য করতে পারে।
iammilind

উত্তর:


9

ম্যাজিক শব্দটি হ'ল "সমজাতীয় স্থানাঙ্ক" যা এমন সিস্টেমে ব্যবহৃত হয় যেখানে দৃec়প্রবণ একটি উপাদান factor একটি ওভারভিউয়ের জন্য উইকি পরীক্ষা করুন, তবে এটি সত্যিই বুঝতে এটি অধ্যয়নের একটি দীর্ঘ কোর্স (যা আমি জানি না)।


10

আপনার পড়া বইয়ের ভূমিকা পড়ুন, আপনি অবাক হবেন;)

রাস্টারাইজেশন ওভারভিউ এর অধীনে http://arcsynthesis.org/gltut/Basics/Intro%20 গ্রাফিকস ১০০ এবং ১০০২ রেন্ডারিং html

"ডাব্লু" মান (যেখানে প্রথম 3 টি মান x, y এবং z) মূলত ক্লিপ জায়গার মাত্রা কী তা বলে। কারণ এটি 1 স্কেলারের মান, ক্লিপ স্পেসের সমস্ত 3 টি মাত্রা সমান (এবং এই কারণেই ক্লিপ স্পেসটি কিউব হয়)। প্রতিটি ভার্টেক্সের নিজস্ব ক্লিপ স্পেস থাকে যেখানে এটি বিদ্যমান (এবং মূলত এটি "ফিট" করা উচিত, অন্যথায় এটি ক্লিপস: ডি), এমন একটি "বিশ্ব" নেই যা ক্লিপ স্পেস (যদিও সমস্ত ক্লিপ স্পেস একই থাকে " ওয়ার্ল্ড "আমার মনে হয়, এমনকি এ নিয়ে আমারও সমস্যা হচ্ছে; পি)।

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

আমি মনে করি 5 এর ক্লিপ স্পেস বলার অর্থ কিউব 5x5x5 এর পরিবর্তে প্রতিটি মাত্রার উপরের ক্লিপ স্পেসের পরিসীমা -5 থেকে 5 অবধি রয়েছে would তবে এটি সম্ভবত কারণ: কেবলমাত্র xy এবং z স্থানাঙ্কগুলি ক্লিপ স্পেসের মাত্রা দ্বারা বিভক্ত হয়, সুতরাং মূলত আপনার অনুভূমিকাগুলি এটিকে বহন করে:

x = x / ডাব্লু

y = y / w

z = z / w

এবং এটিই এটি সমস্ত সম্ভব করে তোলে। আমি মনে করি এটির কারণটি সহজ তুলনা করার জন্য। যদি স্থানাঙ্কগুলি ক্লিপ স্পেসের মাত্রা দ্বারা ভাগ করা হয়, তবে যে স্থানাঙ্কের 1 বা তার বেশি মানের 1 এর বেশি উপাদান রয়েছে সেগুলি ক্লিপ জায়গার বাইরে রয়েছে। সুতরাং যদি আপনার ক্লিপ স্পেসটি 1024 বলে ধরা হয় তবে স্থানাঙ্কটি [2000,3, -100] হয় তবে এক্স (2000) উপাদানটি ক্লিপ স্পেসের বাইরে (যা কেবলমাত্র -1024 থেকে 1024 এর মধ্যে থাকে)।

ক্লিপস্পেসের ভিতরে কোনও কিছু রয়েছে কিনা তা কম্পিউটিংওয়াইজ করে বলা সহজ (আপনারা যা করতে হবে তা হ'ল: (এক্স / ডাব্লু) <1 && (x / w)> - 1 তারপর রেন্ডার করুন। এছাড়াও, আমি অনুমান করি যে সমস্ত বিভাজনগুলির সমস্ত ক্লিপ স্পেস একই আকারের (তাই প্রতিটি ক্লিপ স্পেস কিউব প্রতিটি মাত্রায় -1 থেকে 1 অবধি থাকে) স্বাভাবিককরণ প্রক্রিয়া শেষে যা আসে তার পক্ষে সহজ করে তোলে, সমস্ত স্থানাঙ্কে সেই মুহুর্তটি দেখে 0 থেকে 1 অবধি ভাসমান (যা কেটে ফেলা হয়েছে তা উপেক্ষা করে)।


ক্লিপ-স্পেসটি কেন , ক্লিপ-স্পেস বলতে কী বোঝায় না তা কেন প্রশ্ন । যে, বিভাজন দ্বারা ডাব্লু এর বিন্দু কি।
নিকল বোলাস

2
এটি 3 টি বুলেট পয়েন্টের তৃতীয় প্রশ্নের উত্তর দেয় যদিও =)
ড্যাম্মকেল

8

টিএল; ডিআর এটি 4 ডি স্পেস নয়, এটি 3 ডি প্লাস একটি স্কেলিং নম্বর যা কার্যত সর্বদা 1. এটি যদি 1 হয় তবে আপনি এটিকে উপেক্ষা করতে পারেন এবং প্রথম তিনটি সংখ্যা হ'ল এক্স, ওয়াই, জেড। না হলে আরও জটিল হয়ে যায়।

এখানে একটি সহজ ব্যাখ্যা। 3 ডি-তে ভার্টিসের কেবল তিনটি উপাদান থাকা উচিত

⌈x⌉ v = |y| ⌊z⌋

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

⌈m11 m12 m13⌉ ⌈x⌉ c = |m21 m22 m23| * |y| ⌊m31 m32 m33⌋ ⌊z⌋

তবে এর একটি বড় ত্রুটি রয়েছে: আপনি অনুবাদ করতে পারবেন না। যদি [x,y,z]শূন্য হয়, mফলাফল যাই হোক না কেন ফলাফল সর্বদা শূন্য হবে, সুতরাং আমাদের কাছে এমভিপি থাকতে পারে না যার মধ্যে অনুবাদ রয়েছে। স্পষ্টতই আমরা এটি চাই। সমাধানটি হ'ল আমাদের ভেক্টরগুলির শেষে 1 যুক্ত করা এবং ম্যাট্রিক্স 4x4 এ প্রসারিত করুন:

⌈cx⌉ ⌈m11 m12 m13 tx⌉ ⌈x⌉ |cy| = |m21 m22 m23 ty| * |y| |cz| |m31 m32 m33 tz| |z| ⌊ 1⌋ ⌊ 0 0 0 1⌋ ⌊1⌋

(আপনি যদি কোনও অরথোগোনাল এমভিপি ম্যাট্রিক্সের দিকে নজর দেন - যেমন থেকে glOrtho()- আপনি চতুর্থ সারিটি দেখতে পাবেন 0 0 0 1Sometimes

⌈cx⌉ ⌈m11 m12 m13⌉ ⌈x⌉ ⌈tx⌉ |cy| = |m21 m22 m23| * |y| + |ty| ⌊cz⌋ ⌊m31 m32 m33⌋ ⌊z⌋ ⌊tz⌋

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

সম্পাদন করা

আমি বিশ্বাস করি যে আসল প্রেরণাটি দৃষ্টিভঙ্গি অনুমানগুলির জন্য ছিল , যা 3 ডি স্থানাঙ্ক সহ অসম্ভব। অন্যান্য রূপান্তর রয়েছে যা আপনি কেবল 4 ডি ভেক্টর দিয়েই করতে পারেন তবে অনুবাদটি বোঝা সহজ।


2
আপনার ডাউনভোটগুলি ব্যাখ্যা করুন।
টিম্ম্ম্ম

+1, তথ্যটি সঠিক বলে ধরে নিয়েছি এটি একটি ভাল ব্যাখ্যা ছিল এবং এটি আমার পক্ষে সহায়ক ছিল। ধন্যবাদ
লুক 0

1

আরও একটি কারণ আছে যা আমি দেখছি এবং সেগুলি পূর্ববর্তী উত্তরে উল্লেখ করা হয়নি।

অনুবাদ ম্যাট্রিকগুলি 4x4 হয় যাতে আপনি "বিশ্বজুড়ে" অবজেক্টটিও অনুবাদ করতে পারেন। কারণ 3x3 ম্যাট্রিক্সের সাহায্যে আপনি 3 ডি স্থানাঙ্কটি ঘোরান এবং স্কেল করতে পারেন তবে আপনি কেবল 4 ডি 4 ম্যাট্রিক্স দিয়ে 3 ডি স্থানাঙ্কটি অনুবাদ করতে পারেন, এখান থেকে 4 ডি ভেক্টরে 3 ডি স্থানাঙ্ক প্রকাশ করার প্রয়োজন রয়েছে।


এই জাতীয় সংজ্ঞা অনুসারে আপনার কেবল একটি 4 ডি ভেক্টর "দরকার"। 4x4 ম্যাট্রিক্স কেবল যুক্ত করার উদ্দেশ্যে নয় যেমন প্রত্যেকে অন্যের কাছে ধরে নেওয়া এবং দাবি করা পছন্দ করে। আপনি যদি যা চেয়েছিলেন তা হ'ল ঘূর্ণনের পরে অনুবাদ যুক্ত করা (একটি 3 ডি পয়েন্টে) আপনি কেবল একটি 4x3 ম্যাট্রিক্স সংজ্ঞায়িত করতে চান। আপনি যদি পরে থাকেন তবে এটি অনেক বেশি দক্ষ। অন্যান্য নিয়মের পুরো বান্ডিলের জন্য তৈরি হওয়া নিয়মগুলিতে নিজেকে নিজেকে সীমাবদ্ধ করতে হবে না কারণ এটি আরও সুন্দর দেখায়। লল
পুডল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.