ThaiGameDevX - Thai Game Developers eXchange Forums
26 September 2017, 11:42:39 PM *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
News: หากมาครั้งแรก เชิญอ่าน ประกาศเจตนารมณ์ของ ThaiGameDevX และ กติกา ข้อตกลงในการใช้เว็บบอร์ด ครับ
 
   Home   Help Search Calendar Login Register  
Pages: [1]   Go Down
  Print  
Author Topic: ถามเรื่อง พื้นฐานการทำ Texture หน่อยครับ งง เกี่ยวกับ vertex  (Read 3532 times)
0 Members and 1 Guest are viewing this topic.
pick44
Approved Member
Jr. Member
*

จำนวน ชม/ไม่พอใจ: +6/-8
Offline Offline

Posts: 62


« on: 08 January 2010, 02:14:40 AM »

VERTEX cube[] = {
   { -1.0f, -1.0f, 0.0f, 0.0f,1.0f },     //side 1
   { -1.0f,  1.0f, 0.0f, 0.0f,0.0f },
   {  1.0f, -1.0f, 0.0f, 1.0f,1.0f },
   {  1.0f , 1.0f, 0.0f, 1.0f,0.0f },
   
}; 
เอาแค่ด้านเดียวก่อน
จากตัวอย่างข้างบน ภาพที่ได้มันหน้าจะกลับหัว กลับหางไม่ใช่หรอครับ  ทำไมมันออกมาตรงอะ  คืออยากรู้อะครับ ไม่เข้าใจซักที T-T

http://image.ohozaa.com/show.php?id=908e26dcca2c85999f8c17a86acf0089

ผลที่ได้
http://image.ohozaa.com/show.php?id=2fcfa117306d69ead3f86fa7fb8c4580
หรือผมเข้าใจเรื่อง พิกัด ผิดไป  สอนผมหน่อย......
« Last Edit: 08 January 2010, 02:20:44 AM by pick44 » Logged
yod
Global Moderator
Hero Member
*****

จำนวน ชม/ไม่พอใจ: +150/-15
Offline Offline

Posts: 3,240


WWW
« Reply #1 on: 08 January 2010, 02:26:54 AM »

API อะไรล่ะ ? ? ?
Logged

..
Thaina
Approved Member
Hero Member
*

จำนวน ชม/ไม่พอใจ: +29/-83
Offline Offline

Gender: Male
Posts: 810



« Reply #2 on: 08 January 2010, 02:31:24 AM »

Vertex Position(3 ตัวแรก) ในแกน 3D เนี่ย
Y(ตัวที่สอง) เป็น -1 คืออยู่ข้างล่าง ครับ
ถ้า Y เป็น 1 คืออยู่ข้างบน

เข้าใจว่าคงใช้ 3D ในการวาด ใช่มั้ยครับ?
ใน 3D นี่ Y ขึ้นบนเป็นบวกครับ
Logged
pick44
Approved Member
Jr. Member
*

จำนวน ชม/ไม่พอใจ: +6/-8
Offline Offline

Posts: 62


« Reply #3 on: 08 January 2010, 02:35:58 AM »

ใช้ DirectX อะครับ    กำหนดให้ใช้กฏ มือซ้าย

    //set up the camera view matrix
    D3DXMatrixLookAtLH(&matView, &cameraSource, &cameraTarget, &updir);
    d3ddev->SetTransform(D3DTS_VIEW, &matView);

หรือตรงนีมัน ใช้แกน +y ขึ้นข้างบนไปก่อนหรอครับ
Logged
pick44
Approved Member
Jr. Member
*

จำนวน ชม/ไม่พอใจ: +6/-8
Offline Offline

Posts: 62


« Reply #4 on: 08 January 2010, 02:42:25 AM »


VERTEX CreateVertex(float x, float y, float z, float tu, float tv)
{
    VERTEX vertex;
    vertex.x = x;
    vertex.y = y;
    vertex.z = z;
    vertex.tu = tu;
    vertex.tv = tv;
    return vertex;
}

QUAD *CreateQuad(char *textureFilename)
{
    QUAD *quad = (QUAD*)malloc(sizeof(QUAD));

    //load the texture
    D3DXCreateTextureFromFile(d3ddev, textureFilename, &quad->texture);

    //create the vertex buffer for this quad
   d3ddev->CreateVertexBuffer(
        4*sizeof(VERTEX),
        0,
        D3DFVF_MYVERTEX, D3DPOOL_DEFAULT,
        &quad->buffer,
        NULL);

    //create the four corners of this dual triangle strip
    //each vertex is X,Y,Z and the texture coordinates U,V
    quad->vertices[0] = CreateVertex(-1.0f, 1.0f, 0.0f, 0.0f, 0.0f);
    quad->vertices[1] = CreateVertex( 1.0f, 1.0f, 0.0f, 1.0f, 0.0f);
    quad->vertices[2] = CreateVertex(-1.0f,-1.0f, 0.0f, 0.0f, 1.0f);
    quad->vertices[3] = CreateVertex( 1.0f,-1.0f, 0.0f, 1.0f, 1.0f);

    return quad;
}


VERTEX cube[] = {
   { -1.0f, -1.0f, 0.0f, 0.0f,1.0f },     //side 1
   { -1.0f,  1.0f, 0.0f, 0.0f,0.0f },
   {  1.0f, -1.0f, 0.0f, 1.0f,1.0f },
   {  1.0f , 1.0f, 0.0f, 1.0f,0.0f },
   
};

QUAD *quads[6];



void init_cube()
{
    for (int q=0; q<6; q++)
    {
        int i = q*4;    //little shortcut into cube array
        quads[q] = CreateQuad("cube.bmp");
        for (int v=0; v<4; v++)
        {
            quads[q]->vertices[v] = CreateVertex(
                cube.x, cube.y, cube.z,    //position
                cube.tu, cube.tv);            //texture coords
            i++;    //next vertex
        }
    }
}
Logged
pick44
Approved Member
Jr. Member
*

จำนวน ชม/ไม่พอใจ: +6/-8
Offline Offline

Posts: 62


« Reply #5 on: 08 January 2010, 02:52:43 AM »

Vertex Position(3 ตัวแรก) ในแกน 3D เนี่ย
Y(ตัวที่สอง) เป็น -1 คืออยู่ข้างล่าง ครับ
ถ้า Y เป็น 1 คืออยู่ข้างบน

เข้าใจว่าคงใช้ 3D ในการวาด ใช่มั้ยครับ?
ใน 3D นี่ Y ขึ้นบนเป็นบวกครับ


อ๊ะ หรือว่าเราเข้ใจ กิกัดของ Texture  ผิด   หรือที่ถูกมันควรจะเป็นเช่นนี้ Huh??

(ใส่รูปทำไงอะบอกหน่อย)

http://image.ohozaa.com/show.php?id=2ab7ad6c149ee9257c1030b43dec45f9
Logged
naamchan
Approved Member
Jr. Member
*

จำนวน ชม/ไม่พอใจ: +7/-0
Offline Offline

Posts: 52


« Reply #6 on: 08 January 2010, 08:46:43 AM »

Texture Coordinate 0,0 อยู่มุมซ้ายบนครับ

ลองดูอ้างอิงได้จากในนี้ครับ http://nexe.gamedev.net/directKnowledge/default.asp?p=texture%20coordinates
Logged
Thaina
Approved Member
Hero Member
*

จำนวน ชม/ไม่พอใจ: +29/-83
Offline Offline

Gender: Male
Posts: 810



« Reply #7 on: 08 January 2010, 10:31:48 PM »

ทคุณเข้าใจผิดไม่ใช่พิกัดของ Texture ครับแต่เป็นพิกัดของ Vertex
Logged
pick44
Approved Member
Jr. Member
*

จำนวน ชม/ไม่พอใจ: +6/-8
Offline Offline

Posts: 62


« Reply #8 on: 11 January 2010, 08:57:13 PM »

ทคุณเข้าใจผิดไม่ใช่พิกัดของ Texture ครับแต่เป็นพิกัดของ Vertex

ไปทดลองเคลื่อนที่กล่องดูแล้ว ใช่จริงๆด้วย มันไม่เหมือนกับทำ 2D แฮะ  ขอบคุณคราบ
Logged
Pages: [1]   Go Up
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2013, Simple Machines Valid XHTML 1.0! Valid CSS!