Содержание
Пиксель арт Triangle Tree, пиксель арт, оранжевый, треугольник, другие png
Пиксель арт Triangle Tree, пиксель арт, оранжевый, треугольник, другие png
теги
- оранжевый,
- треугольник,
- другие,
- конус,
- линия,
- пиксель арт,
- транссексуалы,
- дерево,
- png,
- прозрачный,
- бесплатная загрузка
Об этом PNG
Размер изображения
- 1000x1350px
Размер файла
- 45.37KB
MIME тип
- Image/png
Скачать PNG ( 45.37KB )
изменить размер PNG
ширина(px)
высота(px)
Лицензия
Некоммерческое использование, DMCA Contact Us
Дорожный конус Green Line, доход, шляпа, треугольник, оранжевый png
600x769px
47. 03KBКонус, дизайн, оранжевый, арт, çakır png
1000x1216px
60.53KBКокосовая пальма, Кокосовая пальма, еда, ветка дерева, оранжевый png
2000x2000px
712.24KBоранжевый и серый транспортный конус, транспортный конус, транспортный конус, клипарт, оранжевый, продукт png
5505x7000px
3.02MBКонус движения, Конусы, Форматы файлов, оранжевый, инкапсулированный PostScript png
800x800px
128.94KBкрасный треугольник, прямоугольный треугольник, красный треугольник, угол, фотография, треугольник png
1152x1024px
22.22KB org/ImageObject»>Футболка солнцезащитные очки, Thug Life, солнцезащитные очки, угол, очки, бандит png
512x512px
3.89KBАбстрактная живопись, Дерево, Эффект дерева для фона, текстура, угол, дизайн интерьера png
8000x8000px
8.98MBПраздничная шапка ко дню рождения Computer Icons, праздничная шапка, 3D компьютерная графика, шляпа, праздники png
512x512px
14.45KBТранспортный конус Безопасность дорожного движения, конус, оранжевый, другие, шоссе png
2400x1821px
818.99KB org/ImageObject»>дорожный конус, угол, треугольник, другие png
512x512px
8.31KBПиксель арт Рисование, наруто, фотография, мультфильм, наруто png
1024x1024px
595.5KBразноцветная праздничная шапка, праздничная шапка, праздники, шляпа, фотография png
599x599px
58.66KBзеленая стрелка, зеленая стрелка, зеленая стрелка, разное, угол, треугольник png
600x457px
17.95KBогонь, кальцифер, мастер рисования Howl Studio Ghibli, м футболки, Разное, оранжевые, другие png
600x700px
302. 45KBМультипликационный взрыв, Спрайт, Анимация, Рисование, Пиксель арт, Спецэффекты, WALK CYCLE, Компьютерная графика, анимация, круг, компьютерная графика png
1920x1440px
3.06MBогонь, пиксель арт огонь пламя, пиксель арт, текст, фотография, прямоугольник png
665x945px
24.34KBГалстук-бабочка Компьютер Иконки, костюм, угол, треугольник, галстук png
300x980px
18.76KBПиксель арт, монета Марио, текст, прямоугольник, другие png
618x618px
4.38KBзеленый Mincraft меч, Майнкрафт Алмазный Меч Эндерман Той, мины, угол, мины, оружие png
1000x1000px
18. 63KBПиксель арт, Нян Кэт, текст, оранжевый, другие png
600x600px
13.95KBЛоготип Линия Бренд Шрифт, линия, угол, текст, оранжевый png
1420x1217px
16.58KBMinecraft Видеоигра Здоровье, результат игры, текст, прямоугольник, сердце png
900x900px
70.98KBОранжевый учебный конус искусства, Конус движения Безопасность дорожного движения, Go, зеленый, зеленый свет, свет, значок движения, разное, игра, оранжевый png
481x600px
74.17KBКавай Пиксель арт, другие, угол, прямоугольник, треугольник png
512x512px
46.02KB org/ImageObject»>Гора 3D моделирование, горная вершина, коричневая гора с растением, другое, компьютерная графика 3D, пейзаж png
715x1417px
1.14MBКонус движения, конусы, Разное, оранжевый, другие png
4116x4542px
308.66KBДивали фейерверк фейерверки, фейерверки с, угол, фотография, треугольник png
512x1560px
89.86KBЕгипетские пирамиды форма квадрат пирамида, пирамида, угол, треугольник, оранжевый png
897x617px
16.06KB org/ImageObject»>персиковая и белая коробка с рисунком, Milk Pastel Aesthetics, молоко, еда, текст, прямоугольник png
500x580px
3.3KBЗдоровье Видеоигры Pixel Art Bar, здоровье, игра, прямоугольник, сердце png
512x512px
54.88KBFortnite Twitch Logo Компьютерные иконки Потоковое мультимедиа, стример, разное, угол, текст png
2048x2048px
42.65KBпраздничная шапка, праздничная шапка, день рождения, праздничная шапка, праздники, шляпа, апельсин png
1181x2000px
159.44KB org/ImageObject»>Рок-коллаж иллюстрации, Концепт-арт Видеоигра Платформа игры Арт-игра, камень, игра, лист, камень png
720x1440px
945.42KBПрозрачность и прозрачность Pixel art Речи воздушный шар, текст, угол, текст, прямоугольник png
960x640px
3.98KBGoku Pixel Art Dragon Ball, пикселей, вымышленный персонаж, пиксели, пикселизация png
460x600px
13.46KBРождественская елка Рождественская открытка Иллюстрация, Креатив Треугольник Рождественская елка, декор, ветвь дерева, треугольник png
2362x2362px
21.29MB org/ImageObject»>Дерево, пиксель, биом, 16 бит, символ png
580x800px
31.92KBЩупальца Squidward Мистер Крабс Патрик Стар Сэнди Чикс, другие, другие, вымышленный персонаж, обувь png
607x846px
81.3KBХвойная шишка Сосна, шишка, Разное, фотография, другие png
800x876px
855.3KBPixel Bow Pixel art Лук и стрела, пиксель, разное, угол, текст png
1681x772px
307.18KBзеленое лиственное растение, рождественская сосна, рождественская сосновая кайма, клипарт, филиал, трава png
8000x3248px
8. 1MB8-битный Покемон Pixel art Poké Ball, другие, прямоугольник, другие, биткойн png
512x512px
4.3KBПиксель арт, кнопка запуска, текст, логотип, другие png
770x360px
8.48KB
оранжевый воздушный шар, воздушный шар оранжевый, оранжевый воздушный шар, данные, вечеринка, парад png
2224x3720px
846.03KB
желтый треугольник, треугольник желтый пирамидный узор, треугольник, угол, оранжевый, форма png
512x512px
9.75KB
Общий плющ Vine Muscadine виноградное растение, Vines Plants s, зеленые листья иллюстрации, лист, филиал, завод Стебель png
1024x3072px
1.47MB
желтый, оранжевый и красный конфетти, Треугольный круг, симметрия на рабочем столе, частицы, текст, компьютер, оранжевый png
1350x734px
200.07KB
красная иллюстрация сердца, красное сердце карри, сердце без фона, любовь, логотип, красный png
700x700px
13.29KB
пиксельная иллюстрация пингвина, Pixel Penguin Pixel art, пиксельная графика, игра, животные, текст png
1050x1400px
47.12KB
Живые пиксели . Треугольник Паскаля.
?
- Живые пиксели . Треугольник Паскаля.
- moj_golos
- November 27th, 2016
Одна клетка:
Пустой Пиксель- ничего не происходит.
Активный Пиксель — становится пустым на первом ходу.
Две клетки:
В первом случае наблюдаем маятник — последовательное движение живого Пикселя вправо-влево. Похоже на Пралайю КосмосаВо втором случае два Живых Пикселя составляют простейшую статическую фигуру.
Три клетки:
Все фигуры исчезают.
Четыре клетки: Она же свастикаВсе фигуры возвращаются в начальное состояние. Это простейший случай сохранения наследственности. ДНК
Анализ вариантов из двух рядов
В этом случае элементы либо становятся статическими, либо мигают как сигнальные лампочки.3 Ряда. Это уже Троица.Тримурти
Фигуры делятся и бегают вправо-влево
Квадраты — квадратные матрицы — поля с одинаковым количеством колонок и рядов. Некоторые квадраты дают уникальные возможности полного обращения рисунка в начальное состояние.
Квадрат 2×2 содержит два «мигающих» варианта, переходящих один в другой, и два статических.4×4
Встречаются фигуры, обладающие обратимостью. Большинство указанных фигур необратимы, при этом превращаются в обратимые фигуры с периодом 6 — у некоторых период 3, ввиду симметричности.3×3 — все варианты исчезают
5×5 — пиксель в углу превращается в конструкцию с периодом обращения 4
6×6 – 1 активный пиксель в углуОбратимость за 14 ходов. Вспомните про 14 частей тела Осириса
8×8 – 1 активный пиксель в углуЧётные квадраты могут быть использованы на практике для шифрования. Найти «обратный» алгоритм, чтобы выяснить предыдущее состояние паттерна «Живых Пикселей» очень сложно, не исключено что практически невыгодно. При этом «прямой прогон» любого изображения в обратимом чётном квадрате даст начальное изображение через большое, заранее известное число итераций
ДНК
Разбирая одномерное, то есть линейное поле, можно имитировать копирование ДНК и сохранение наследственной информации. Любая последовательность живых пикселей со временем повторяется и размножается. В данном случае записано число 19 в двоичном виде: 1011.
На четвертом шагу цифра повторяется, на 8-ом — повторяется еще раз, плюс образуется зеркальная фигура слева. На 24-ом ходу мы видим две фигуры из 8-го хода. Цифра 1011 видна в правой половине каждой из них. Таким образом, наблюдаем наследование родительских признаков, подобно тому, как это происходит в ДНК.Элемент — набор пикселей, лежащих рядом. Элементы раскрашены в зависимости от количества пикселей в них.
За один ход добавляется один элемент в один пиксель в случайное место на поле.
При столкновении элементов с одинаковым числом пикселей они образуют новый элемент, на один пиксель больше.
В природе — появление более крупного организма при достаточном количестве более мелких
При столкновении элементов разного размера, остается лишь самый большой
В природе — борьба за выживание, пищевая цепочка
Существование элементов ограниченно по времени, которое прямо пропорционально количеству пикселей в элементе.
В природе — время жизни организмов ограничено и также есть зависимость времени жизни от среднего размера особи в виде.
«Эволюцию» можно рассматривать как развитие отдельных живых существ, хотя правильнее рассматривать её как развитие видов. Каждый элемент — есть определённый вид организмов.
Для удобства элементы из одного пикселя показаны зелёным, из двух — тёмно-красным, из трёх — светло-красным, из четырёх — синим. Наиболее распространёнными являются элементы из одного и двух пикселей. На рисунке видно, что элемент из четырёх пикселей всего один. Наиболее крупные элементы живут долго, затем надолго исчезают — как динозавры.
http://arbuz.uz/u_treug.html
Вот как мы приходим и к Треугольнику Паскаля и Кривой Серпинского в Теории ВероятностиВот это фигура Дракона. Она же сходится со строением созвездия Орион,где живут Рептилоиды
Остальные виды клеточных автогматов вы может изучить здесь http://www.mirekw.com/ca/rullex_wlif.html
Оригинал записи и комментарии на LiveInternet.ru
Наконец-то я понял, почему камеры на iPhone образуют треугольник: мне в этом помог Pixel 6 Pro
Мы все видели iPhone, и если выемка стала самой узнаваемой чертой дизайна Apple за последние несколько лет, то массив камер на задней панели iPhone, безусловно, является вторым наиболее ярким элементом эстетического дизайна телефона.
Однако внешний вид — это еще не все. Функциональный дизайн, возможно, даже важнее. Привлекательное оборудование сначала привлечет ваше внимание, но хорошо функционирующий продукт — это то, что поможет удержать ваше внимание и заинтересовать вас, чтобы вы возвращались снова и снова. Это функциональный дизайн.
iPhone 12 и iPhone 13: почему у некоторых iPhone основная камера находится сверху, а у некоторых снизу?
Мы много раз обсуждали тему, почему камеры на iPhone расположены именно так.
Однажды мы говорили о том, почему основная камера iPhone 12 Pro была размещена в верхней части треугольника, в то время как остальные серии iPhone 12 располагали свои основные камеры внизу.
В другой раз я написал о
Flaregate, и предположил, что новое диагональное расположение камер на
iPhone 13 и
13 Mini может решить проблему бликов, которая беспокоила iPhone в течение многих лет.
Я ошибся. Камеры iPhone 13 и 13 Mini расположены по диагонали просто потому, что датчики стали намного больше, чем раньше. В них используются те же камеры, что и в iPhone 12 Pro Max от Apple, со стабилизацией смещения сенсора и физически большими сенсорами. Что еще более важно, Flaregate не была решена, но стала лучше.
Гениальный дизайнер треугольной камеры iPhone от Apple
Вопрос, на который у нас не было ответа, — «почему камеры iPhone образуют треугольник». И здесь фактор «недостатка места» не играл бы такой большой роли, поскольку еще в 2019 году, когда Apple представила первый трехкамерный iPhone 11 Pro, они могли расположить камеры вертикально, как на Huawei P30 Pro или горизонтально, как на Galaxy S10.
Технически оставшееся место в шасси было бы таким же — просто нужно было бы выбрать другое расположение компонентов. Но нет! Apple пошла на треугольник. И, как выясняется, причина этого настолько логична и проста, что по иронии судьбы ее так трудно увидеть.
Вы заметили, что iPhone 12 Pro и iPhone 13 Pro обладают этой волшебной способностью плавно переключаться между разными объективами? Что ж, это было бы невозможно, если бы расположение камер на iPhone не образовывало треугольник.
У меня очень плохо с математикой и геометрией, но не нужно быть гением, чтобы знать, что стороны равностороннего треугольника имеют одинаковую длину. Следовательно, расстояние между ракурсами (камеры iPhone) одинаковое или примерно одинаковое. Я не настолько ботаник, чтобы измерить это.
Почему треугольная ориентация камеры может помочь при переключении между объективами
Независимо от того, на какую камеру вы переключитесь, вы получите наименьшее возможное изменение композиции. Опять же — расстояние между камерами сокращается до минимума, и все равно, на какой объектив вы переключаетесь или с какого.
Таким образом, вы получите более плавные переходы как в режиме фото, так и в режиме видео. Конечно, Apple также применила некоторую программную магию в этом аппаратном трюке — иначе переход не был бы таким хорошим, как он есть.
Обнаружение того, почему камеры на iPhone образуют треугольник: Pixel 6 Pro помог мне это сделать
Но я еще не рассказал вам, как я пришел к выводу о треугольной камере iPhone. По иронии судьбы, это произошло, когда я играл с новым Pixel 6 Pro от Google.
Смотрите — панель камеры на задней панели Pixel 6 Pro выглядит совершенно уникально. В целом это привлекательный телефон, особенно в солнечном цвете Sorta. Но что становится очень очевидным, когда вы делаете несколько фотографий с помощью Pixel 6 Pro, так это то, что, в отличие от Apple, Google, похоже, недостаточно продумала функциональный дизайн Pixel.
Переключение объектива камеры Pixel 6 Pro
Крайняя слева камера Pixel 6 Pro является основной. Затем у нас есть сверхширокоугольный шутер посередине и 4-кратный зум-объектив перископа справа. Как вы можете заметить по полученным нами записям экрана, это приводит к заметным изменениям в композиции изображения при переключении между объективами.
Почему? Что ж, камера запускается с основным шутером по умолчанию, но из-за горизонтального расположения объективов и решения Google разместить основную камеру в крайнем левом углу, а зум-в крайнем правом, при переходе от 1X к 4X , вы получаете этот тонкий, но заметный сдвиг изображения слева направо или наоборот.
И, конечно же, поскольку у нас есть третья камера на борту, непоследовательность и резкое переключение объектива становятся еще более преувеличенными, когда в дело вступает сверхширокоугольный объектив.
Расположение камер Galaxy S21 Ultra: Копирование Huawei окупается
Вам может быть интересно, как вы решаете проблему переключения объектива на телефоне с еще большим количеством камер и большим фокусным расстоянием. К счастью, у Samsung есть прекрасный пример для нас в лице Galaxy S21 Ultra, который поставляется со сверхширокой, основной, 3-кратной и 10-кратной камерами.
Если бы Samsung пошел по пути Pixel 6 Pro, это создало бы еще большие различия, чем на телефоне Google, поскольку теперь при переключении со сверхширокоугольной камеры на камеру 3X или 10X это сместило бы ваше поле зрения далеко, далеко влево или вправо.
Очевидно, что вы не можете сформировать треугольник с четырьмя углами или камерами, поэтому Samsung не может позаимствовать идею Apple. Но что вы можете сделать, так это расположить их таким образом, чтобы переключение объективов было максимально плавным. Именно здесь Samsung позаимствовал расположение камер у Huawei P40 Pro+ — первого телефона с 10-кратным перископическим зум-объективом и камерой с 3-кратным зумом.
Компания Samsung нашла золотую середину, разместив 3-кратную камеру вне оси, рядом с основным стрелком, который находится между сверхширокоугольной камерой и 10-кратной камерой перископа. Таким образом, камеры создают неровную форму, но если бы вы разобрали Galaxy, вы бы поняли, что Samsung удалось сформировать два меньших треугольника.
Более того, линзы расположены логично, так что когда вы переходите от 0,5x к 1x, а затем к 3x и 10x, они перемещаются примерно на такое же расстояние, как если бы вы переходили от 0,5x к 3x или от 1x к 10x. Единственный заметный сдвиг в расстоянии между сверхширокой и 10-кратной камерами, но это абсолютно нормально. Если у вас есть возможность использовать телефон с несколькими камерами, вы должны знать, что увеличение с 0,5x до 10x, особенно для фотографий, встречается редко. Самсунг это знает.
В конце концов…
Итак, вывод здесь довольно прост. Если у вас когда-либо возникали сомнения относительно того, как принимаются решения о продукте в Apple, больше не удивляйтесь! А также, если вы когда-нибудь задумывались, как Google подошла к дизайну Pixel 6, компания явно предпочла внешний вид функциональности. Ну, по крайней мере, в случае с серией Pixel 6.
Это неправильно? Не обязательно. Как упоминалось в начале, внешний вид привлечет вас к определенному продукту, и если Google хотел, чтобы вы купили Pixel 6 Pro, потому что дизайн задней панели выглядит уникальным и привлекательным, это именно та жертва, на которую компания должна была пойти, чтобы достичь его цель.
Но Apple — компания, которая ставит функциональный дизайн на первое место или, по крайней мере, на один уровень с эстетикой. iPhone всегда имел репутацию «самого простого» телефона в использовании. Теперь, по той или иной причине, я не думаю, что это обязательно верно для всех, но я не могу отрицать, что iPhone был создан для того, чтобы сложные задачи казались простыми.
Вот несколько примеров:
- Как ночной режим включается автоматически, даже если вам не нужно об этом думать
- Как Face ID разблокирует ваш телефон без каких-либо действий
И да, даже когда кажется, что Apple принимает некоторые (противоречивые) решения вместо вас, например, замедляет работу вашего телефона, чтобы ваша батарея могла работать дольше — для этого решения есть причина. Apple пыталась исправить одно, но сломала другое. Одобряю ли я
Batterygate? Конечно, нет. Это лишь показывает, что даже Apple может ошибаться в поисках баланса.
Там, где эстетический и функциональный дизайн встречаются и сливаются воедино, конечный пользователь чувствует себя полноценным. И по этой причине, как бы я ни любил Pixel 6 Pro, я должен признать, что Google пошел на компромисс. Это нарушение сделки? Точно нет. Pixel 6 Pro может не плавно переключаться между объективами, но у него есть звездная система камер, которая будет доминировать над iPhone в нескольких ключевых областях.
Если вы хотите узнать больше, ознакомьтесь с нашим сравнением камер Pixel 6 Pro, iPhone 13 Pro Max и Galaxy S21 Ultra. Спойлер: это близко.
Жизнь треугольника — логический конвейер NVIDIA
возможно, пришло время обновить основную графическую архитектуру под ним. Ферми был первым
Графический процессор NVIDIA, реализующий полностью масштабируемый графический движок, и его базовая архитектура могут быть
обнаружены как у Кеплера, так и у Максвелла. Следующая статья и особенно «сжатый
изображение конвейера знаний» ниже должно служить в качестве учебника, основанного на различных общедоступных
материалы, такие как технические документы или руководства GTC по архитектуре графического процессора.
эта статья
фокусируется на графической точке зрения на то, как работает GPU, хотя некоторые принципы, такие как
то, как выполняется программный код шейдера, одинаково для вычислений.
- Fermi Whitepaper
- Kepler Whitepaper
- Maxwell Whitepaper
- Fast Tessellated Rendering on Fermi GF100
- Programming Guidelines and GPU Architecture Reasons Behind Them
Pipeline Architecture Image
GPUs are super parallel work distributors
Why вся эта сложность? В графике нам приходится иметь дело с усилением данных, которое создает множество
переменных рабочих нагрузок. Каждый вызов отрисовки может генерировать разное количество треугольников. Количество
вершин после отсечения отличается от того, из чего изначально были сделаны наши треугольники. После отбраковки задней грани и глубины не всем треугольникам могут понадобиться пиксели на экране. Размер экрана треугольника может означать, что он требует миллионы пикселей или вообще не требует.
Как следствие, современные графические процессоры позволяют своим примитивам (треугольникам, линиям, точкам) следовать логическому конвейеру, а не физическому конвейеру. В старые времена, до появления унифицированной архитектуры G80 (вспомните аппаратное обеспечение DX9, ps3, xbox360), конвейер был представлен на чипе с различными этапами, и работа проходила через него один за другим. G80, по сути, повторно использовал некоторые единицы для вычислений как вершинных, так и фрагментных шейдеров, в зависимости от нагрузки, но по-прежнему имел последовательный процесс для примитивов/растеризации и так далее. С Fermi конвейер стал полностью параллельным, что означает, что чип реализует логический конвейер (шаги, через которые проходит треугольник) за счет повторного использования нескольких механизмов на чипе.
Допустим, у нас есть два треугольника A и B. Части их работы могут быть на разных этапах логического конвейера.
A уже был преобразован и нуждается в растрировании. Некоторые из его пикселей могут работать с пиксельным шейдером.
инструкции уже есть, в то время как другие отбрасываются буфером глубины (Z-cull), другие могут быть уже
записываются в фреймбуфер, а некоторые могут ждать. И рядом со всем этим, мы могли бы получить
вершин треугольника B. Таким образом, хотя каждый треугольник должен пройти логические шаги, многие из них могут быть
активно перерабатываются на разных этапах их жизни. Задача (получить треугольники drawcall на экране)
разделить на множество более мелких задач и даже подзадач, которые могут выполняться параллельно. Каждая задача назначена на
ресурсы, которые доступны, что не ограничивается задачами определенного типа (параллельное затенение вершин
к затенению пикселей).
Представьте реку, которая расходится веером. Параллельные конвейерные потоки, независимые друг от друга, каждый
на своей собственной временной шкале некоторые могут разветвляться больше, чем другие. Если бы мы кодировали блоки графического процессора цветом на основе треугольника или вызывали отрисовку, над которой он сейчас работает, это были бы многоцветные мерцающие огни 🙂
Архитектура графического процессора
Поскольку Fermi NVIDIA имеет аналогичную архитектуру. Существует Giga Thread Engine , который управляет всей текущей работой. Графический процессор разделен на несколько GPC (кластер обработки графики), каждый из которых имеет несколько SM (потоковый мультипроцессор) и один растровый процессор . В этом процессе существует множество взаимосвязей, в первую очередь Crossbar , который позволяет выполнять перенос работы между GPC или другими функциональными блоками, такими как подсистемы ROP (блок вывода рендеринга).
Работа, о которой думает программист (выполнение шейдерной программы), выполняется на SM. Он содержит множество ядер , которые выполняют математические операции для потоков. Один поток может быть вершинным или пиксельным шейдером.
призыв например. Эти ядра и другие блоки управляются Warp Scheduler , которые управляют группой
из 32 потоков в качестве основы и передать инструкции для выполнения диспетчерским подразделениям . Логика кода обрабатывается планировщиком, а не внутри самого ядра, которое просто видит что-то вроде «суммировать регистр 4234 с регистром 4235 и сохранить в 4230» от диспетчера. Ядро само по себе довольно тупое по сравнению с процессором, где ядро довольно умное. GPU выводит интеллектуальность на более высокий уровень, он выполняет работу всего ансамбля (или нескольких, если хотите).
Сколько из этих блоков фактически находится на GPU (сколько SM на GPC, сколько GPC…) зависит от
сама конфигурация чипа. Как вы можете видеть выше, GM204 имеет 4 GPC с каждым 4 SM, но Tegra X1, например, имеет 1 GPC и 2 SM, оба с дизайном Maxwell. Сам дизайн SM (количество ядер, блоков команд, планировщиков…) также менялся с течением времени от поколения к поколению (см. первое изображение) и помог сделать чипы настолько эффективными, что их можно масштабировать от высокопроизводительного настольного компьютера до ноутбука. мобильный.
Логический конвейер
Для простоты некоторые детали опущены. Мы предполагаем, что вызов отрисовки ссылается на некоторый index-
и вершинный буфер, который уже заполнен данными и живет в DRAM графического процессора и использует только вершины.
и пиксельный шейдер (GL: фрагментный шейдер).
- Программа выполняет вызов отрисовки в графическом API (DX или GL). Это достигает драйвера в какой-то момент, что делает немного
проверка, чтобы проверить, являются ли вещи «законными», и вставляет команду в кодировке, читаемой графическим процессором, внутри буфер .
Здесь может возникнуть множество узких мест на стороне ЦП, поэтому важно, чтобы программисты хорошо использовали API и методы, которые используют мощь современных графических процессоров. - Через некоторое время или явных вызовов «сброса» драйвер буферизировал достаточно работы в pushbuffer и отправляет ее на
обрабатывается GPU (с некоторым участием ОС). Хост-интерфейс графического процессора принимает команды, которые обрабатываются через внешний интерфейс . - Мы начинаем распределение нашей работы в примитивном распределителе , обрабатывая индексы в индексном буфере и генерируя рабочие пакеты треугольников, которые
мы отправляем в несколько GPC. - Внутри GPC Poly Morph Engine одного из SM обеспечивает выборку данных вершин из индексов треугольников ( Vertex Fetch ).
- После получения данных внутри SM запланированы варпы из 32 потоков, которые будут работать над вершинами.
- Планировщик варпа СМ выдает инструкции для всего варпа по порядку. Потоки выполняют каждую инструкцию в режиме блокировки и могут быть замаскированы индивидуально, если они не должны активно ее выполнять. Причин для такой маскировки может быть несколько. Например, когда текущая инструкция является частью ветви «if (true)», а данные, относящиеся к потоку, оценены как «false», или когда критерий завершения цикла был достигнут в одном потоке, но не в другом. Следовательно, наличие большого количества расхождений ветвей в шейдере может значительно увеличить время, затрачиваемое на все потоки в варпе. Нити не могут продвигаться по отдельности, только как варп! Деформации, однако, независимы друг от друга.
- Инструкция варпа может быть выполнена сразу или может занять несколько ходов отправки. Например, SM обычно
имеет меньше единиц для загрузки/сохранения, чем выполнение основных математических операций. - Поскольку некоторые инструкции выполняются дольше, чем другие, особенно загрузка памяти, планировщик деформации
может просто переключиться на другой варп, не ожидающий памяти. Это ключевая концепция того, как GPU
преодолевают задержку чтения памяти, они просто переключают группы активных потоков. Чтобы сделать это
переключение очень быстрое, все потоки, управляемые планировщиком, имеют свои собственные регистры в файле регистров.
Чем больше регистров требуется шейдерной программе, тем меньше места занимают потоки/деформации. Чем меньше деформации мы можем
переключаться между ними, тем менее полезная работа, которую мы можем выполнять, ожидая завершения инструкций (в первую очередь извлекается из памяти). - Как только варп выполнил все инструкции вершинного шейдера, его результаты обрабатываются Viewport Transform . Треугольник обрезается объемом пространства отсечения и готов к растеризации. Мы используем кэши L1 и L2 для всех этих межзадачных коммуникационных данных.
- Теперь становится интересно, наш треугольник вот-вот расколется и, возможно, покинет GPC, в котором он сейчас живет. Ограничивающая рамка треугольника используется для определения того, какие растровые механизмы должны работать с ним, поскольку каждый механизм покрывает несколько фрагментов экрана. Он отправляет треугольник одному или нескольким GPC через Перекладина рабочего распределения . Теперь мы фактически разделили наш треугольник на множество более мелких задач.
- Настройка атрибута в целевом SM гарантирует, что интерполянты (например, выходные данные, которые мы сгенерировали в вершинном шейдере) находятся в формате, удобном для пиксельного шейдера.
- Raster Engine GPC работает с полученным треугольником и генерирует информацию о пикселях для тех
разделы, за которые он отвечает (также обрабатывает отбраковку задней поверхности и Z-отбор). - Снова мы объединяем 32 пиксельных потока, или, лучше сказать, 8 пиксельных квадратов 2×2, что является наименьшим
unit, с которым мы всегда будем работать в пиксельных шейдерах. Этот квадрат 2×2 позволяет нам вычислять производные
для таких вещей, как фильтрация текстуры MIP-карты (большое изменение координат текстуры в квадроциклах вызывает
более высокий мип). Те потоки в квадрате 2×2, места выборки которых на самом деле не покрывают треугольник, маскируются (gl_HelperInvocation). Один из планировщиков деформации локального SM будет управлять задачей затенения пикселей. - Та же самая игра с инструкциями планировщика деформации, которая была у нас на логическом этапе вершинного шейдера, теперь
выполняется в потоках пиксельного шейдера. Пошаговая обработка особенно удобна, потому что
мы можем получить доступ к значениям внутри пиксельного квадрата почти бесплатно, так как все потоки гарантированно
чтобы их данные вычислялись до одной и той же точки инструкции (NV_shader_thread_group). - Мы уже на месте? Наш пиксельный шейдер почти завершил расчет цветов для записи в rendertargets.
и у нас также есть значение глубины. На этом этапе мы должны принять во внимание исходный порядок треугольников в API.
прежде чем мы передадим эти данные в одну из подсистем ROP (блок вывода рендеринга), которая сама по себе имеет несколько
единицы РОП. Здесь выполняется проверка глубины, смешивание с фреймбуфером и так далее. Эти операции должны происходить
атомарно (одновременно устанавливается один цвет/глубина), чтобы гарантировать, что у нас нет цвета одного треугольника и глубины другого треугольника.
значение, когда оба покрывают один и тот же пиксель.
NVIDIA обычно применяет сжатие памяти, чтобы уменьшить требования к пропускной способности памяти, что увеличивает «эффективную» пропускную способность (см.80 ПДФ).
Фух! мы закончили, мы записали некоторый пиксель в rendertarget. Я надеюсь, что эта информация была полезной
чтобы понять часть работы/потока данных внутри графического процессора. Это также может помочь понять другой побочный эффект
почему синхронизация с процессором действительно вредна. Приходится ждать, пока все закончится, и нет
отправляется новая работа (все блоки становятся бездействующими), это означает, что при отправке новой работы требуется некоторое время, пока
все снова полностью загружено, особенно на больших графических процессорах.
На изображении ниже вы можете увидеть, как мы визуализировали модель CAD и раскрасили ее с помощью различных SM или деформации.
идентификаторы, которые участвовали в изображении (NV_shader_thread_group).