डायरेक्टएक्स या ओपनजीएल का उपयोग कर 100 फ़्लोटिंग क्यूब्स प्रदर्शित करना

मैं DirectX या OpenGL का उपयोग करके 100 फ़्लोटिंग क्यूब प्रदर्शित करना चाहता हूं।

मैं या तो कुछ नमूना स्रोत कोड, या तकनीक का विवरण खोज रहा हूँ। मुझे सही ढंग से प्रदर्शित करने के लिए एक घन प्राप्त करने में परेशानी है।

मैंने ट्यूटोरियल्स की एक अच्छी श्रृंखला के लिए नेट पर कब्जा कर लिया है और हालांकि वे 3 डी primitives को कैसे करें, इसके बारे में बात करते हैं, जो मुझे नहीं मिल रहा है, इस बारे में जानकारी है कि बड़ी संख्या में 3D </कोड> primitives - cubes , spheres , pyramids , और बहुत आगे।

0
जोड़ा संपादित
विचारों: 1

3 उत्तर

एक ही कोड का उपयोग करके घन खींचने के लिए बस glTranslatef (या डायरेक्टएक्स समकक्ष) का उपयोग करें, लेकिन सापेक्ष बिंदु को स्थानांतरित करें जहां आप इसे आकर्षित करते हैं। हो सकता है कि ऐसा करने का एक बेहतर तरीका है, हालांकि, मैं ओपनजीएल के लिए काफी नया हूं। अपने दृष्टिकोण को सेट करना सुनिश्चित करें ताकि आप उन्हें सभी देख सकें।

0
जोड़ा

आप कहते हैं कि आपको एक घन प्रदर्शित करने में पर्याप्त परेशानी है ... इसलिए मुझे यकीन नहीं है कि आपके पास प्रदर्शित करने के लिए कोई है या नहीं।

असल में ... एक कोड में घन लिखने के लिए अपना कोड डालें, फिर उस फ़ंक्शन को 100 बार कॉल करें।

void DrawCube()
{
    //code to draw the cube
}

void DisplayCubes()
{
    for(int i = 0; i < 10; ++i)
    {   
         for(int j = 0; j < 10; ++j)
         {
             glPushMatrix();
             //alter these values depending on the size of your cubes.
             //This call makes sure that your cubes aren't drawn overtop of each other
             glTranslatef(i*5.0, j*5.0, 0);
             DrawCube();
             glPopMatrix();
         }
    }              
}

यह मूल रूपरेखा है कि आप इसे करने के बारे में कैसे जा सकते हैं। यदि आप कुछ और अधिक कुशल चाहते हैं तो कुछ बार जब आप मूल बातें समझ लेंगे तो प्रदर्शन सूची में एक नज़र डालें :)

0
जोड़ा

हाँ, अगर आप कुशल थे तो आप सब कुछ एक ही वर्टेक्स बफर में फेंक देंगे, लेकिन मुझे नहीं लगता कि 100 cubes ड्राइंग पिछले 5 वर्षों में उत्पादित किसी भी जीपीयू को धक्का देगी, इसलिए आपको ऊपर दिए गए सुझावों के बाद ठीक होना चाहिए।

वर्टेक्स शेडर, छाया के माध्यम से एक मूल पास लिखें, हालांकि आप पिक्सेल शेडर में चाहते हैं। या तो एक विश्व मैट्रिक्स में पास करें और कशेरुक शेडर में अनुवाद करें, या सीपीयू पक्ष पर विश्व अंतरिक्ष वर्टेक्स पदों की गणना करें (ऐसा करें यदि आपके क्यूब्स स्थिर रहने जा रहे हैं)।

आप फैंसी प्राप्त कर सकते हैं और ज्यामिति इंस्टेंसिंग आदि कर सकते हैं, लेकिन बस मूल बातें पहले जा रही हैं।

0
जोड़ा