Своя собственная линия в OpenGL

Тема в разделе "WASM.OpenGL", создана пользователем assemblerist, 14 авг 2010.

  1. assemblerist

    assemblerist New Member

    Публикаций:
    0
    Регистрация:
    12 авг 2010
    Сообщения:
    26
    Как нарисовать собственную линию в OpenGL без потерь производительности, не считая расходы, связанные с вводом возможных дополнительных параметров? Алгоритмы меня в данный момент не интересуют, и хотя они также влияют на производительность, по моему мнению, главные потери всё же не здесь.
     
  2. DoctorWho

    DoctorWho New Member

    Публикаций:
    0
    Регистрация:
    16 июл 2010
    Сообщения:
    87
    А вам всё не имёцца)

    http://pmg.org.ru/nehe/index.html

    урок 36 - Радиальное размытие и текстурный рендеринг
     
  3. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    assemblerist
    Уточните, что значит собственную?
     
  4. assemblerist

    assemblerist New Member

    Публикаций:
    0
    Регистрация:
    12 авг 2010
    Сообщения:
    26
    Уточнять тут особо нечего. Собственная линия – линия, написанная собственноручно. Скажем, меня не устраивают те линии, которые предоставляет OpenGL ,и я хочу написать свою с некоторыми специфическими особенностями. Сделать это не сложно. Но вот беда – потеря производительности. Это значит, что похожие функции OpenGL будут работать на порядок выше, чем мои собственные, а это сводит всю работу на “нет”.
     
  5. DoctorWho

    DoctorWho New Member

    Публикаций:
    0
    Регистрация:
    16 июл 2010
    Сообщения:
    87
    assemblerist
    А вообще сходите на http://www.gamedev.ru Там много по графике статей. Может чего найдёте получше.
     
  6. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    assemblerist
    Конечно, потому как аппаратное априори быстрее софтварного. Но на самом деле извратиться возможно, с помощью шейдеров, но зачем?
     
  7. assemblerist

    assemblerist New Member

    Публикаций:
    0
    Регистрация:
    12 авг 2010
    Сообщения:
    26
    Ещё один вопрос, на который уже вроде бы дан ответ. Под собственные нужды. Вообще речь идёт не только о линиях, но и о ряде других функций, которые не мешало бы переписать на свой лад. Беда вся в том, что это чревато потерей скорости. А она критична.

    ….Так чем же здесь могут помочь шейдеры?
     
  8. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    assemblerist
    Так вы пример приведите, а то это всё как-то эфимерно.

    Шейдеры это программируемый конвеер видеокарты, конечно далеко не всё там ещё программируемо, но что-то есть. Самое главное что нет потери скорости. Начертить линию шейдером возможно, а вот уже что-то более сложное не факт.
     
  9. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    assemblerist
    И нарисовать софтварно линию, это не слишком медленно, единственно не надо использовать мегатормоз gdi.
     
  10. assemblerist

    assemblerist New Member

    Публикаций:
    0
    Регистрация:
    12 авг 2010
    Сообщения:
    26
    Например, можно внедрить в функцию линии дополнительные параметры: идентификатор, цвет, угол поворота, начало и конец, состояние, номер группы. На сколько фантазии хватит. Разработчиками графической библиотеки по очень понятным причинам этого предусмотрено не было. Они реализовали так, как сочли нужным. Всё это можно осуществить, но, как уже упоминалось не в первый раз, скорость может упасть и упасть в разы. То есть за свои функции придётся дорого заплатить производительности или использовать не совсем удобные функции OpenGL, что в итоге всё равно приведёт к той же потери скорости. Почему многие разработчики более склоняются к библиотеке DirectX? Историю вспоминать не будем, но есть и другая причина – недостаточно эффективный и удобный инструментаж. DirectX тоже отнюдь не идеал и в нём можно найти немало огрех. Не выход. Поэтому как это исправляется? Переделывается и переваривается до нужного “рабочего” состояния.

    Насчёт шейдеров – возможно это вариант. Но дело в том, что чертить “более сложное” всё равно придётся.

    GDI никто вообще не рассматривает. Забудьте о нём.
     
  11. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    assemblerist
    Огород. Есть такая парадигма "модель, вид" называется, слышали?
     
  12. assemblerist

    assemblerist New Member

    Публикаций:
    0
    Регистрация:
    12 авг 2010
    Сообщения:
    26
    Ферма. Продолжайте. По-моему вы не совсем поняли.
     
  13. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    assemblerist
    Подозреваю, что вряд ли вас тут кто понимает. Вы себя понимаете?
     
  14. assemblerist

    assemblerist New Member

    Публикаций:
    0
    Регистрация:
    12 авг 2010
    Сообщения:
    26
    Вполне. Я уверен и Вы всё прекрасно понимаете. Всё сказано в вопросе и в первом посте. На мой взгляд, он сформулирован предельно ясно.
     
  15. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    В OpenGL все есть. В DirectX тоже. Что конкретно не устраивает?