Spiiin's blog

Почему я недолюбливаю программирование графики

Графическое программирование — гештальт, нужно одновременно разбираться в API/алгоритмах/железе, в идеале еще и чувствовать эстетику, нельзя специализироваться на чём-то одном. Всё связано между собой и простоянно развивается/меняется

  • API - несколько, разные, по разному работающие, разные языки шейдеров
  • для одного API, но разного железа best practices по оптимизациям могут отличаться
  • В движках над API — слой кроссплатформенной абстракции, над ними ещё один-два, через которые нужно продираться. Как будто, иногда проще написать прототип на каком-нибудь playground приложении, чтобы потом перенести в основной. Вниз вообще черепахи до самого дна
  • на любом рынке полно лоу-енд железа, которое надо поддерживать (древние ноутбуки/телефоны)
  • алгоритмы - зависят от железа, постоянно обновляются. Постоянное обновление знаний, плюс накоплнение ради узнавания готовых решений. A Deep Dive into Nanite Virtualized Geometry, Продавцы инжинов, ну или какой-нибудь HDR из Uncharted. То все рендерят похоже, то наоборот, каждый делает по разному.
  • часто вообще решает не графика и код, а геймплей и арт
  • тяжело отлаживать граничные случаи, нужны референсные тупые алгоритмы
  • с афантазией(на самом деле, “авизуализацией”) достаточно сложно мысленно связать код с тем, что он отобразит. Но возможно