سؤال

ما أريد القيام به هو رسم (كبير) التضاريس مع برنامج OpenGL. ولذا فإن لدي مجموعة من القمم، دعنا نقول 256 × 256 والتي تخزن في جسم عازلة قمة في VRAM. I مثلث بشكل صحيح لهم، حتى لقد حصلت على مؤشر عازلة للالوجوه.

// vertexes
glBindBufferARB(GL_ARRAY_BUFFER_ARB, vertexBufferId);
glVertexPointer(3, GL_FLOAT, 0, 0);
// textures
glBindBufferARB(GL_ARRAY_BUFFER_ARB, texCoordBufferId);
glTexCoordPointer(2, GL_FLOAT, 0, 0);
// indexes
glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, indexBufferId);
// draw it
glDrawRangeElements(GL11.TRIANGLES, 0, size - 1, size, GL_UNSIGNED_INT, 0);

وأنا أيضا تحميل نسيج مربع التي لديها ليتم تطبيقها على كل مثلث. حتى أنا عندي مشكلة مع احداثيات الملمس:

ويتم تضمين كل قمة الرأس في 4 مثلثات مما يعني انها تحتاج الى 4 احداثيات الملمس. لكن glDrawRangeElements () يتطلب أكبر قدر ممكن احداثيات الملمس كما الذروات.

ولذا فإنني لا ونرى كيف السبيل للقيام بذلك مع المنظمات التي مقرها فيينا. ربما يكون هناك أفضل مفهوم حل مشكلتي أو أنا فقط تفتقر إلى فكرة جيدة.

وشكرا مقدما.

هل كانت مفيدة؟

المحلول

إذا الملمس الخاص بك ينبغي أن يكرر (أو مرآة) نفسه في كل رباعية أفضل طريقة سيكون لاستخدام الإحداثيات الملمس التي تتطابق مع عدد من (س، ص) الموقف في مجموعة الخاصة بك. مثلا للسطر الأول من القمم استخدام هذه الإحداثيات الملمس: (0.0، 0.0)، (1.0، 0.0)، (2.0، 0.0) ... (255.0، 0.0)

نصائح أخرى

وكما تريد ربما الملمس لبسلاسة البلاط، كل ما عليك هو لحساب النسيج السليم تنسيق لكل قمة الرأس وتمريرها تماما مثل القمم.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top