Войти
ПрограммированиеФорумГрафика

Есть ли хороший отладчик шейдеров для GLSL? (2 стр)

Страницы: 1 2
#15
14:03, 31 июля 2014
  float minorLinesStride = 1.0f;
  bool exit = false;
  float linesCount = float(viewportSize[0].w);//the line over every unit
  while(!exit)
  {
    if (linesCount < maxLinesCount)
    {
      exit = true;
    }
    else
    {
      minorLinesStride *= sizeMultiplicator;
      linesCount = float(viewportSize[0].w) / minorLinesStride;
    }
  }
а без цикла, через логарифм, разве не быстрее будет?

#16
14:10, 31 июля 2014

kipar
> а без цикла, через логарифм, разве не быстрее будет?
Конкретнее, пожалуйста, как исправить? Я сам сомневался, но ничего не придумал. Оставил, как есть. Скажете, запомню, буду использовать.

UPD: OK, сообразил. Исправляю.

#17
16:21, 31 июля 2014

TheOrca
> Падает с кодом ошибки 7. Time-out limit. Похоже, где-то бесконечный цикл.
TheOrca
> if (tcoord > 1.0f)
> {
> return false;
> }

Надо думать, что выполняется условие. Смешиваешь float/int в одном выражение. 90 % что отладчик тебе не помог бы. Тем более что на разных вендорах

#18
16:49, 31 июля 2014

innuendo
> Смешиваешь float/int в одном выражение.
Хочется задать вопрос кому-нибудь из авторов языка - а почему так нельзя? В плюсах же можно. Но задавать не буду, шейдер работал. Вот он.

+ Показать

У меня еще и с bool проблемы. Пришлось его выкинуть, заменить на float.

UPDATED.

#19
17:14, 31 июля 2014

Этот шейдер я еще буду разбирать в другой теме. Вроде бы пошел оффтоп, заканчиваю.

#20
17:48, 31 июля 2014

TheOrca
> Хочется задать вопрос кому-нибудь из авторов языка - а почему так нельзя? В
> плюсах же можно.

Есть язык - есть его реализация... Ничего тут не попишешь, такое вот апи :)

Есть ещё особенности GPU - их надо знать и понимать

#21
10:53, 1 авг. 2014

innuendo
> Смешиваешь float/int в одном выражение.
В версиях GLSL начиная с 130 вроде так можно, разве нет?

#22
10:55, 1 авг. 2014

gammaker
> > Смешиваешь float/int в одном выражение.
> В версиях GLSL начиная с 130 вроде так можно, разве нет?

Дело не в версии. int/float - это разные команды на современных GPU, компиляторы разных вендоров могу по-разному иметь их

Страницы: 1 2
ПрограммированиеФорумГрафика

Тема в архиве.