Nano Hash - криптовалюты, майнинг, программирование

Какой шейдер вычислить что-то о примитиве?

Я хочу взять все вершины моего примитива (в частности, 2 вершины GL_LINE) и вычислить с ними некоторые вещи, которые будут использоваться фрагментным шейдером (в частности, коэффициенты линейного уравнения ax + by + c = 0).

Поскольку я не вижу других вершин примитива в вершинном шейдере, существует ли этап шейдера, который лучше всего подходит для вычисления такой информации?

Я не хочу делать в CPU, потому что мне нужна информация после преобразования и проекции. Могу ли я сделать это в одном из шейдеров тесселяции или геометрии и передать результат как плоский, изменяющийся на фрагментный шейдер. В этом случае будет выведен тот же примитив без изменений.

Является ли это возможным? Это хорошая идея?

28.04.2020

  • Не уверен, но подозреваю, что геометрический шейдер использует ввод lines (и вывод?) примитив сделает свое дело. Хотя может быть и лучше. 28.04.2020
  • в частности, коэффициенты линейного уравнения ax + by + c = 0. Это подозрительно похоже на то, что вы можете избежать необходимости вычислять на примитив и можете просто интерполировать, если вы достаточно умны. Вы можете объяснить, что вы делаете с этим уравнением в FS? Если это какая-то линейная математика, я готов поспорить, что ее можно предварительно вычислить в VS и интерполировать. 28.04.2020
  • Я хочу реализовать GL_LINE_SMOOTH в шейдере и использовать уравнение линии для вычисления расстояния до фрагмента. 28.04.2020
  • Вычислительные шейдеры - ваш лучший выбор. Очень глупой (но эффективной) альтернативой было бы включить необходимые данные для ваших вычислений в качестве атрибута вершины и просто сделать это в вершинном шейдере. 29.04.2020

Ответы:


1

У большинства этапов шейдера есть имя, описывающее, что он на самом деле делает. «Вершинный шейдер» принимает вершину на входе и производит вершину на выходе. «Фрагментный шейдер» принимает на входе фрагмент и создает фрагмент на выходе. «Шейдер оценки тесселяции» немного более наклонен, но он оценивает операцию тесселяции, выполняемую модулем тесселяции с фиксированной функцией.

"Геометрический шейдер" - лишний. Он принимает примитив на входе и производит ноль или более примитивов на выходе. По всем правилам, его следовало бы назвать «примитивным шейдером», но винить в этом имени Microsoft.

Если вы хотите вычислить расстояние между окнами позиции образца фрагмента от линии, которая сгенерировала этот фрагмент, вы можете использовать шейдер геометрии.

29.04.2020
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..