سؤال

أقوم برسم نسيج من أطلس الملمس إلى مربع على مكعب. لسبب ما ، يتم قلب محور T مع وجود 0 في الأعلى و 1 يجري في القاع. أي أفكار لماذا يحدث هذا؟

أيضًا ، لا بد لي من تحديد إحداثيات الملمس في اتجاه عقارب الساعة بدلاً من عكس اتجاه عقارب الساعة. أنا أستخدم لفات عكس اتجاه عقارب الساعة. فيما يلي القمم والمؤشرات وإحداثيات الملمس التي أستخدمها.

 float vertices[] = { 
     // Front face
     -width, -height, depth, // 0
     width, -height, depth, // 1
     width,  height, depth, // 2
     -width,  height, depth, // 3

            // Back Face
            width, -height, -depth, // 4
          -width, -height, -depth, // 5
            -width,  height, -depth, // 6
            width,  height, -depth, // 7

            // Left face
            -width, -height, -depth, // 8
            -width, -height, depth, // 9
            -width,  height, depth, // 10
            -width,  height, -depth, // 11

            // Right face
            width, -height, depth, // 12
            width, -height, -depth, // 13
            width,  height, -depth, // 14
            width,  height, depth, // 15

            // Top face
            -width,  height, depth, // 16
            width,  height, depth, // 17
            width,  height, -depth, // 18
            -width,  height, -depth, // 19

            // Bottom face
          -width, -height, -depth, // 20
          width, -height, -depth, // 21
          width, -height, depth, // 22
          -width, -height, depth, // 23
    };

    short indices[] = { 
      // Front   // Back
      0,1,2, 0,2,3,  4,5,6, 4,6,7,
      // Left    // Right
      8,9,10, 8,10,11,  12,13,14, 12,14,15,
      // Top    // Bottom
      16,17,18, 16,18,19, 20,21,22, 20,22,23,
    };


    float textures[] = {
  // Front
  0.0f, 0.0f, 0.25f, 0.0f, 0.25f, 0.25f, 0.0f, 0.25f,
        // Back
     0.25f, 0.0f, 0.50f, 0.0f, 0.50f, 0.25f, 0.25f, 0.25f,
        // Left
     0.50f, 0.0f, 0.75f, 0.0f, 0.75f, 0.25f, 0.50f, 0.25f,
        // Right
     0.75f, 0.0f, 1f, 0.0f, 1f, 0.25f, 0.75f, 0.25f,
        // Top
     0.0f, 0.25f, 0.25f, 0.25f, 0.25f, 0.50f, 0.0f, 0.50f,
        // Bottom
     0.25f, 0.25f, 0.50f, 0.25f, 0.50f, 0.50f, 0.25f, 0.50f,
    };

نسيج بلدي - ملف 256x256 .png الذي تم إنشاؤه في Mspaint.

alt text http://www.freeimagehosting.net/uploads/9a87120b99.png

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

المحلول

لذا ، بعد المزيد من البحث على الويب ، يبدو أن OpenGL يفترض أن الصورة تبدأ من خط المسح السفلي ، مما يعني أنك تحتاج إلى عكس إحداثيات Y/T. أو استخدم أصل اليد اليسرى العلوية عند النظر إلى صورتك الأصلية.

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