না, এটি করার কোনও উপায় নেই।
জ্যামিতি শেডার অনুরোধটির জন্য একটি ইনপুট আদিম প্রয়োজন হয় এবং 0 বা ততোধিক আউটপুট আদিম উত্পন্ন করে। কোনও ইনপুট আদিম ছাড়া সত্যই জ্যামিতি শেডারটি আহ্বান করার কোনও উপায় নেই । অবশ্যই আপনি প্রতিটি ইনপুট আদিমের জন্য জ্যামিতি শেডারের সর্বাধিক সংখ্যক আউটপুট আদিমগুলির সীমাটি প্রসারিত করতে পারেন (এখনই ব্যবহারিক সীমাটি জানেন না, সম্ভবত কয়েক হাজারের ক্রম হওয়া উচিত)। সুতরাং আপনি প্রতিটি পয়েন্টের জন্য 1024 ত্রিভুজ তৈরি করতে পারেন তবে আপনার সবসময় কিছু ইনপুট আদিম থাকতে হবে।
আপনি কি প্রয়োজন হবে না তবে জ্যামিতি প্রকৃত ধারণা। আপনাকে কোনও যুক্তিসঙ্গত স্থানে সত্যিই 3 ডি পয়েন্ট রেন্ডার করতে হবে না, তাদের পাশাপাশি কিছু বিমূর্ত সূচি বা টেক্সচারের স্থানাঙ্ক বা বৈশিষ্ট্য হিসাবে যা কিছু থাকতে পারে এবং অগত্যা একটি অর্থবহ 3 ডি অবস্থান থাকতে পারে না। আপনার অনুভূমিকায় কী কী বৈশিষ্ট্য রয়েছে তা নুন নির্দেশ করে না। এমনকি আপনি কোনও বৈশিষ্ট্য ছাড়াই শীর্ষেও সরবরাহ করতে পারেন । তবে সেইগুলিতে জ্যামিতি শেডের জন্য আপনাকে কিছু আদিম রেন্ডার দিতে হবে, এমনকি যদি সেই আদিমগুলির কোনও আসল বৈশিষ্ট্য না থাকে (তবে আপনি জ্যামিতির শেডারে আপনার আউটপুট জ্যামিতিকে কীভাবে আলাদা করে তুলবেন, যদিও এটি আলাদা প্রশ্ন)।
তবে আপনি যা করেছেন তা প্রতিটি গ্রিড কোষের জন্য একটি বিন্দু রেন্ডারিং করে এবং সেখান থেকে মার্চিং কিউবস ত্রিভুজগুলি তৈরি করা হুবহু সোজা-সামনের পদ্ধতি approach অবশ্যই এই কোষের মধ্যে যা রয়েছে তার বৈশিষ্ট্যগুলি আপনার উপর নির্ভর করে, এটি 3 ডি পজিশন হতে পারে, একটি টেক্সডর্ড 3 ডি টেক্সচারে যাই হোক না কেন, তবে সেগুলি আপনার রেন্ডার গ্রিড কোষ। খাঁটি শব্দার্থগতভাবে বলা হয়, আপনি আসলে সেই বিন্দুগুলিকে "বাতিল" করেন না এবং তারপরে এগুলি ত্রিভুজ দ্বারা "প্রতিস্থাপন" করেন, আপনি প্রতিটি পয়েন্টকে ত্রিভুজগুলির একটি সেটে "রূপান্তর" করেন। জ্যামিতি শেডারটি ঠিক এটির জন্য এবং এটি সম্পর্কে "হ্যাকি" বা "অনুচিত" কিছুই নেই। Noone বলেছেন জ্যামিতি shader একই আউটপুট আদিম টাইপ জেনারেট করতে হিসাবে "সঠিক" হতে ইনপুট করেছে ।
আপনার ভক্সেল গ্রিড রেন্ডারিংয়ের একটি বৃহত ইনপুট-কম উপায় অর্জন করতে আপনি কী করতে পারেন (এবং এটিই যা আপনি আসলে যা চেয়েছিলেন তা হতে পারে) কেবলমাত্র অ্যাট্রিবিউটলেস পয়েন্টের একটি সেট আঁকতে হবে। এর অর্থ হ'ল আপনার কোনও অ্যাট্রিবিউট অ্যারে প্রয়োজন নেই এবং কেবল সেগুলি সমস্ত অক্ষম করুন এবং glDrawArrays
আপনার প্রয়োজনীয় সেলগুলির সংখ্যার সাথে একটি সহজ প্রার্থনা করুন । তারপরে ভার্টেক্স শেডার বা জ্যামিতি শেডারে আপনি ইনপুট ভার্টেক্স আইডি থেকে সামান্য সূচি যাদুতে প্রয়োজনীয় 3 ডি গ্রিড সেল সূচক তৈরি করতে পারবেন (অর্থাত্ gl_VertexID
আপনার কাছে যা তথ্য রয়েছে) এবং তারপরে একটি অনুসন্ধান থেকে আপনার মার্চিং কিউবস জ্যামিতিটি গণনা করতে পারেন 3 ডি ভলিউম টেক্সচার (বা যাই হোক না কেন ডেটাস্ট্রাকচার)
সুতরাং, অতীতের দিকে দৃষ্টিপাত আমি শুরু থেকে আমার বক্তব্যের relativate উচিত: আপনি যে কোনো ইনপুট ছাড়াই প্রিমিটিভের জেনারেট করতে পারবেন না প্রিমিটিভের , কিন্তু আপনি ছাড়া কোনো ইনপুট তাদের তৈরি করতে পারেন জ্যামিতি ।