OpenGL VS VertexArray

Тема в разделе "WASM.OpenGL", создана пользователем skyproc, 28 фев 2010.

  1. skyproc

    skyproc New Member

    Публикаций:
    0
    Регистрация:
    4 май 2007
    Сообщения:
    217
    Всем доброго времени суток.

    Такой вопрос
    Как OpenGL узнает какую текстуру использовать для данного массива?


    push GLBuffer
    push 0
    push GL_T2F_C4F_N3F_V3F
    call glInterleavedArrays

    push VertexSize
    push 0
    push GL_TRIANGLES
    call glDrawArrays
     
  2. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    skyproc
    OpenGL это машина состояний. Нужно установить состояние текстуры(glBindTexture), затем отрисовать данные и наложится текущая текстура.
     
  3. skyproc

    skyproc New Member

    Публикаций:
    0
    Регистрация:
    4 май 2007
    Сообщения:
    217
    т.е. это бут выглядеть вот так?

    Код (Text):
    1. push    1
    2. push    GL_TEXTURE_2D
    3. call    glBindTexture
    4.  
    5. push    GLBuffer_1
    6. push    0
    7. push    GL_T2F_C4F_N3F_V3F
    8. call    glInterleavedArrays
    9.  
    10. push    VertexSize_1
    11. push    0
    12. push    GL_TRIANGLES
    13. call    glDrawArrays
    14.  
    15.  
    16. push    2
    17. push    GL_TEXTURE_2D
    18. call    glBindTexture
    19.  
    20. push    GLBuffer_2
    21. push    0
    22. push    GL_T2F_C4F_N3F_V3F
    23. call    glInterleavedArrays
    24.  
    25. push    VertexSize_2
    26. push    0
    27. push    GL_TRIANGLES
    28. call    glDrawArrays
     
  4. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    skyproc
    Да, примерно так. Только хардкодить идентификаторы текстур не стоит.
     
  5. skyproc

    skyproc New Member

    Публикаций:
    0
    Регистрация:
    4 май 2007
    Сообщения:
    217
    И получается в одном масиве я могу использовать тока одну текстуру?

    Да и ещё
    У меня есть книги по OpenGL, но все они уже рассчитаны на то что програмер знаком с азами, но что же делать тем кто их не знает?
     
  6. skyproc

    skyproc New Member

    Публикаций:
    0
    Регистрация:
    4 май 2007
    Сообщения:
    217
    хардкодить --> что это значит???
     
  7. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    >И получается в одном масиве я могу использовать тока одну текстуру?
    Да, если нужно несколько материалов, то необходимо разбить отрисовку на части.

    >У меня есть книги по OpenGL, но все они уже рассчитаны на то что програмер знаком с азами, но что же делать тем кто их не знает?
    Читать и пробовать-же.
     
  8. skyproc

    skyproc New Member

    Публикаций:
    0
    Регистрация:
    4 май 2007
    Сообщения:
    217
    Поясни плз. что значит
    Да, примерно так. Только хардкодить идентификаторы текстур не стоит.
     
  9. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Это значит жёстко забивать константы. В OpenGL идентификаторы текстур запрашиваются специальной функцией и сохраняются в массиве.
     
  10. skyproc

    skyproc New Member

    Публикаций:
    0
    Регистрация:
    4 май 2007
    Сообщения:
    217
    Если не против скинь свою асю мне на мыло SkyProc@rambler.ru
     
  11. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    А что означает сие лольное название топика? :)
     
  12. murder

    murder Member

    Публикаций:
    0
    Регистрация:
    3 июн 2007
    Сообщения:
    628
    Погугли мультитекстурирование