«Детская школа искусств» Мошенского муниципального района

Мерзляк 7 класс геометрия 50: Номер №50 — ГДЗ по Геометрии 7-9 класс: Атанасян Л.С.

Обморожение — StatPearls — NCBI Bookshelf

Продолжение обучения

Обморожение, также известное как травма от обморожения, представляет собой повреждение тканей, возникающее из-за воздействия холода при температуре ниже нуля градусов по Цельсию. Бездомные, дети и пожилые люди особенно уязвимы к обморожению. Длительная продолжительность и более низкие температуры увеличивают риск обморожения и степень травмы. Некоторые ранее существовавшие состояния, в том числе заболевания периферических сосудов, недоедание, болезнь Рейно, сахарный диабет и употребление табака, могут усугубить повреждение тканей, связанное с обморожением. В этом мероприятии рассматривается оценка и лечение обморожения и подчеркивается роль межпрофессиональной команды в улучшении ухода за пациентами с этим заболеванием.

Цели:

  • Определите эпидемиологию обморожения.

  • Кратко опишите, как обследовать пациента на предмет обморожения.

  • Ознакомьтесь с вариантами лечения и ведения пациентов с обморожением.

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

Доступ к бесплатным вопросам с несколькими вариантами ответов по этой теме.

Введение

Обморожение, также известное как обморожение (FCI), представляет собой повреждение тканей в результате воздействия холода, происходящее при температуре ниже 0 градусов C. Оно включено в спектр травм, от FCI до не-FCI и мороз.[1] Любой участок открытой кожи подвержен разрушительному воздействию обморожения. Пациенты подвержены высокому риску ишемического повреждения тканей и некроза. Пациенты, пережившие холодовое повреждение тканей, склонны к вторичной инфекции и обезвоживанию из-за потери кожного барьера.

Обморожение возникает, когда тело подвергается сильному холоду, что приводит к сужению сосудов. Возникающее в результате снижение кровотока не может доставлять тепло тканям и в конечном итоге приводит к образованию кристаллов льда. Части тела, наиболее подверженные обморожению, включают ноги, руки, уши, губы и нос. Большинство случаев обморожения приходится на зиму; Наиболее подвержены травмам бездомные и те, кто занимается деятельностью на открытом воздухе. Цель лечения состоит в том, чтобы спасти как можно больше тканей, чтобы сохранить максимальную функцию.

Этиология

Воздействие на кожу холода вызывает обморожение. Длительная продолжительность и более низкие температуры увеличивают вероятность и степень травмы. Некоторые ранее существовавшие состояния могут усугубить повреждение тканей из-за обморожения, включая заболевание периферических сосудов, недоедание, болезнь Рейно, сахарный диабет, употребление табака и т. д. Объединяющим паттерном среди этих состояний является плохое нарушение изоляции внутренних органов или дисфункция сосудистой сети.

Факторы риска обморожения включают:

  • Winter season

  • No or inadequate shelter from the cold

  • High wind chill factor

  • Exposure at a high altitude

  • Prolonged duration of exposure

  • Prolonged exposure to a влажное состояние

  • Измененное психическое состояние

  • Злоупотребление алкоголем или наркотиками

  • Недоедание

  • Иммобилизация

  • крайности возраста

  • Бездомные

  • Присутствие медицинских расстройств, таких как диабет, гипотиреоз, периферические сосудистые заболевания, инсульт или артрит

  • 9002

  • . у военнослужащих. Однако с развитием технологий и доступности рекреационные виды спорта стали значительным источником случаев обморожения. Бездомные, дети и пожилые люди особенно уязвимы к обморожению. Факторы риска включают поведенческие (отсутствие одежды, употребление алкоголя/наркотиков, доступ к укрытию), физиологические (обезвоживание, высокогорье, гипоксия) и другие сопутствующие заболевания со склонностью к тканевой гипоксии (диабет, заболевания периферических сосудов, феномен Рейно). 1]

    Патофизиология

    Обморожение поражает дистальные отделы конечностей, пальцев и участки кожи с пониженной перфузией (нос, уши) и меньшей изоляцией. Когда температура открытых участков кожи падает, повреждение эндотелиальных клеток может вызвать локальный отек конечности. Гипервязкий внутрисосудистый кровоток и вазодилатация вызывают силы замедления, что приводит к образованию микротромбов. Сочетание микрососудистых повреждений, венозного застоя и микротромбов способствует развитию ишемии, связанной с обморожением. В зависимости от степени воздействия и последующего повреждения клеток травмы могут быть обратимыми или необратимыми.

    Нормальный кожный кровоток составляет около 250 мл/мин, но при обморожении он падает до менее чем 20-50 мл/мин. Когда температура падает ниже 0 градусов по Цельсию, кровоток прекращается. Более медленная венозная система замерзает раньше артериальной.

    Отморожение вызывает следующие повреждения:

    • Прямое повреждение тканей холодом

    • Косвенное повреждение, вызванное обезвоживанием

    • 0005
    • Стазис микрососудов, приводящих к образованию тромба и ишемии

    • РЕПОРФУЗИТЕЛЬНЫЙ РАБОТЫ

    Восстановление

    ОБЩЕСТВЕННОЕ ОБЛАСТИ часто самые тяжелые ранения. Здесь повреждение необратимо

  • Зона застоя – это средняя зона, где повреждение может быть от умеренного до тяжелого. но это обратимо.

  • Зона гиперемии – наименее травмированная проксимальная зона.

  • В большинстве случаев восстановление после обморожения может занять от 5 до 30 дней, в зависимости от тяжести травмы.

    Гистопатология

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

    Анамнез и физикальное исследование

    Анамнез пациента должен включать продолжительность и температуру окружающей среды во время воздействия.

    Физикальное обследование может выявить побледневшую, белую кожу. Пациенты могут жаловаться на тяжесть в открытой конечности по мере прогрессирования онемения. На более поздних стадиях обморожения открытые участки могут стать темными или пурпурными из-за плохого тонуса сосудов и скопления крови. При поверхностном обморожении, поражающем эпидермис и подкожно-жировую клетчатку, после отогревания появляются бледные белые волдыри. Глубокий, полнослойный обморожение станет геморрагическим при согревании и может стать гангренозным.[3] Поврежденная кожа может быть четко разграничена с окружающей жизнеспособной кожей.

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

    Согревание травмы

    Во время согревания отек может начать появляться в течение 3-5 часов и может длиться 7 дней. Пузыри, как правило, появляются в течение 4-24 часов.

    Наличие струпа станет очевидным через 10-15 дней, а мумификация с демаркационной линией может развиться через 3-8 недель.

    Оценка

    Обморожение — это клинический диагноз. Использование дополнительных лабораторных тестов может быть полезным для определения степени, в которой сопутствующие заболевания могут способствовать ишемии тканей. Технеций-99 (Tc-99) трехфазное сканирование и магнитно-резонансная ангиография (МРА) могут помочь определить степень ампутации в первые несколько дней после травмы.[4][5] Визуализация костей с Tc-99 также может помочь в определении кандидатуры на tPA.[6]

    Лечение/управление

    Пациенты должны быть защищены от дальнейших травм путем покрытия открытых участков. Уход за больными с обморожением начинается с согревания в полевых условиях, если не ожидается повторного замораживания, поскольку повторное оттаивание может усугубить травмы.[3] Уберите пациентов от ветра. Снимите мокрую одежду и замените ее сухой одеждой. Избегайте сильного трения, так как это может привести к дальнейшему повреждению.[7]

    Лечение в стационаре включает ванны с теплой водой, приблизительно 40-42 градуса C. Пациентам с системной гипотермией следует управлять путем повышения внутренней температуры выше 35 градусов C с использованием теплых жидкостей внутривенно, и это должно предшествовать согреванию пораженной конечности. ] Этот протокол согревания также включает пациентов с другими сопутствующими заболеваниями или серьезной травмой. НПВП (ибупрофен) показаны для контроля боли и предотвращения дальнейшего воспаления, но для достижения контроля боли могут потребоваться более сильные анальгетики, включая наркотики. Согревание должно сопровождаться частой повторной проверкой чувствительности.

    Несмотря на споры, некоторые источники рекомендуют дренирование или иссечение белых мутных волдырей, в то время как геморрагические пузыри следует оставлять нетронутыми. Как и в случае с ожоговыми пациентами, особое внимание следует уделять предотвращению инфекций и обезвоживания. Чрезмерно агрессивная хирургическая обработка может привести к удалению кожи, которая в противном случае была бы жизнеспособной, поэтому перед хирургической обработкой следует добиться полного согревания. Признаки компартмент-синдрома (отек, отсутствие пульса, сильная боль) требуют срочного хирургического вмешательства. Отсроченная ампутация (до 6 недель после травмы) до определения жизнеспособности тканей может предотвратить хирургическую заболеваемость из-за ненужных процедур.]

    Пациенты с повреждениями на всю толщину и признаками ишемии и отсутствием восстановления тканевой перфузии после согревания могут быть кандидатами на тромболитическую (tPA) терапию [10]. tPA может снизить потребность в пальцевой ампутации [11]. Комбинированная терапия tPA и внутривенным гепарином также может снизить потребность в пальцевой ампутации [6]. Илопрост, сильное сосудорасширяющее средство, использовался в качестве потенциального средства для предотвращения ишемии при обморожении.[3] В/в илопрост недоступен в Соединенных Штатах.

    Дифференциальная диагностика

    Тщательная оценка системной гипотермии и полнослойного повреждения тканей необходима у пациентов с очевидным обморожением. Отсутствие коррекции основных сопутствующих заболеваний, связанных с обморожением (например, интоксикация, нарушение сердечно-сосудистой системы, значительное воздействие окружающей среды, травма) может привести к системному коллапсу и смерти.

    Стадирование

    Традиционно обморожение имеет систему стадирования, аналогичную ожогам:

    • Первая степень — онемение, центральная бледность, окружающая эритема/отек, шелушение, дизестезия

    • Вторая степень — волдырь кожи с окружающей эритема/отеком

    • Третья степень — Потеря ткани с участием всей толщины кожи, геморрагические пузырьки

    • ЧЕТВЕРТАЯ СТЕРИЯ — Потеря Ткани. что приводит к потере пораженной части тела

    Была предложена другая классификация, основанная на обморожении рук/ног, которая включает ранние визуализирующие исследования и может лучше прогнозировать исходы.[12]

    • 1 степень — нет цианоза на конечности; риск ампутации или осложнений не прогнозируется

    • Степень 2 — цианоз только дистальной фаланги; прогнозируется ампутация мягких тканей и последствия последствий для ногтей на руках и ногах

    • Степень 3 — цианоз промежуточных и проксимальных фаланг пальцев; прогнозируемая ампутация до кости пальца и функциональные осложнения

    • 4–9 степень0008 цианоз костей запястья/предплюсны; прогнозируется ампутация конечности и функциональные осложнения.

    При использовании этой системы классификации с повышением класса возрастает и вероятность ампутации конечностей.

    Прогноз

    Функциональные последствия отмороженных участков зависят от степени повреждения тканей.[12] Неблагоприятными факторами при обморожении являются геморрагические волдыри, цианоз без побледнения и твердая кожа после согревания.[3] Пациентам следует избегать переохлаждения в течение года после первоначальной травмы.

    Повреждение обморожения связано с заболеваемостью, что хуже при наличии следующего:

    • Присутствие геморрагических пузырей

    • NO Отек

    • Продолжающийся Mottling

    • Frank Frank Присутствие из фрэзенской ткани 9005

    • . Frank Frank Присутствие из фрэзенской ткани 9005

    • Frank Frank При присутствии фрэзена

    • 40004 Frank Frank of Frozen Tecksue

    • 40004.

      Осложнения обморожения включают:

      Осложнения

      Выжившие после обморожения могут иметь непереносимость холода в ранее обмороженных областях, что может быть следствием спазма сосудов и аномального вегетативного тонуса после холодовой травмы. Комплексный регионарный болевой синдром является частым осложнением.[10] Аутоампутация пораженного пальца может предшествовать хирургической ампутации.

      Сдерживание и обучение пациентов

      Модификация риска, включая надлежащую одежду, доступ к укрытию, а также поддержание гидратации и питания, жизненно важны для защиты от обморожения.[7] Пациентам следует рекомендовать держать одежду как можно более сухой и носить несколько слоев одежды, если они предвидят переохлаждение. Следует отказаться от употребления алкоголя. Смягчающие средства, хотя в скандинавских странах традиционно считалось, что они предотвращают обморожение, не обладают защитным эффектом в предотвращении обморожения, и их использование не рекомендуется. [13]

      Улучшение результатов работы медицинской бригады

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

      Мультимодальный подход к лечению пациентов с обморожением может обеспечить наилучшие шансы на функциональное восстановление.[1]

      Ключ к обучению пациентов; обморожение во многих случаях можно предотвратить. Пациентам следует рекомендовать хорошо одеваться зимой, носить с собой дополнительные запасы одежды, если они занимаются зимними видами спорта, и избегать тесной одежды. Медсестра должна рекомендовать воздержаться от употребления алкоголя, запрещенных наркотиков и табака. Для тех, у кого проблемы со здоровьем. важно убедиться, что их здоровье стабильно, прежде чем отправиться на прогулку на открытом воздухе зимой.

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

      Наконец, не следует сразу рекомендовать ампутацию. Цель состоит в том, чтобы спасти все жизнеспособные ткани. Таким образом, медсестра по уходу за ранами должна следить за пациентом и только очищать инфицированную поверхностную омертвевшую кожу и позволять поврежденной коже отшелушиваться самостоятельно. Открытое общение с межпрофессиональной командой является ключом к тому, чтобы все пациенты получали оптимальный стандарт лечения.

      Исходы

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

      Контрольные вопросы

      • Доступ к бесплатным вопросам с несколькими вариантами ответов по этой теме.

      • Комментарий к этой статье.

      Рисунок

      Обморожение пальцев/кистей. Предоставлено Wikimedia Commons, Winky (CC by 2.0) https://creativecommons.org/licenses/by/2.0/deed.en

      Ссылки

      1.

      Imray CH, Oakley EH. Холод по-прежнему убивает: простудные заболевания в военной практике, обморожение и незамерзание холодовых ранений. Медицинский корпус JR армии. 2005 декабрь; 151 (4): 218-22. [PubMed: 16548337]

      2.

      Ринтамяки Х. Предрасполагающие факторы и профилактика обморожения. Int J Циркумполярное здоровье. 2000 г., апрель; 59(2):114-21. [PubMed: 10998828]

      3.

      Рош-Нэгл Г., Мерфи Д., Коллинз А., Шихан С. Обморожение: варианты лечения. Eur J Emerg Med. 2008 июнь; 15 (3): 173-5. [В паблике: 18460961]

      4.

      Cauchy E, Marsigny B, Allamel G, Verhellen R, Chetaille E. Значение сцинтиграфии с технецием 99 в прогнозе ампутации при тяжелых обморожениях конечностей: ретроспективное исследование 92 тяжелых обморожения. J Hand Surg Am. 2000 сен; 25 (5): 969-78. [PubMed: 11040315]

      5.

      Баркер Дж. Р., Хаус М. Дж., Браун Р. Е., Кукан Дж. О., Мур В. Д. Магнитно-резонансная томография тяжелых обморожений. Энн Пласт Сург. 1997 марта; 38(3):275-9. [PubMed: 9088467]

      6.

      Twomey JA, Peltier GL, Zera RT. Открытое исследование по оценке безопасности и эффективности тканевого активатора плазминогена при лечении тяжелых обморожений. J Травма. 2005 г., декабрь 59(6):1350-4; обсуждение 1354-5. [PubMed: 16394908]

      7.

      Handford C, Buxton P, Russell K, Imray CE, McIntosh SE, Freer L, Cochran A, Imray CH. Обморожение: практический подход к управлению больницей. Экстремальная Физиол Мед. 2014;3:7. [Бесплатная статья PMC: PMC3994495] [PubMed: 24764516]

      8.

      Hallam MJ, Cubison T, Dheansa B, Imray C. Лечение обморожения. БМЖ. 2010 19 ноября; 341: c5864. [PubMed: 21097571]

      9.

      Ву Э. К., Ли Дж.В., Хур Г.Й., Кох Дж.Х., Сео Д.К., Чхве Дж.К., Чан Ю.К. Предлагаемый протокол лечения обморожения: ретроспективный анализ 17 случаев на основе 3-летнего опыта работы в одном учреждении. Арх Пласт Хирург. 2013 сен;40(5):510-6. [Бесплатная статья PMC: PMC3785582] [PubMed: 24086802]

      10.

      Шеридан Р.Л., Гольдштейн М.А., Стоддард Ф.Дж., Уокер Т.Г. История болезни Массачусетской больницы общего профиля. Дело 41-2009. Мальчик 16 лет с переохлаждением и обморожением. N Engl J Med. 2009 г., 31 декабря; 361(27):2654-62. [PubMed: 20042758]

      11.

      Бруен К.Дж., Баллард Дж. Р., Моррис С. Е., Кокран А., Эдельман Л. С., Саффл М. Р. Снижение частоты ампутаций при отморожениях на фоне тромболитической терапии. Арка Сур. 2007 г., июнь; 142(6):546-51; обсуждение 551-3. [В паблике: 17576891]

      12.

      Коши Э., Шетай Э., Маршан В., Марсиньи Б. Ретроспективное исследование 70 случаев тяжелых обморожений: предлагаемая новая схема классификации. Дикая природа Мед. 2001 Зима; 12 (4): 248-55. [PubMed: 11769921]

      13.

      Lehmuskallio E. Смягчающие средства в профилактике обморожения. Int J Циркумполярное здоровье. 2000 г., апрель; 59(2):122-30. [PubMed: 10998829]

      Расширяемая архитектура рендеринга в Frostbite

    • http://www.frostbite.com/2007/04/frostbite-rendering-architecture-and-real-time-procedural-shading-texturing-techniques
    • Более разнообразные игры
      Не только движок Battlefield
      RPG, Racing, Sports, Action
    • http://www.frostbite.com/2007/04/frostbite-rendering-architecture-and-real-time-procedural-shading-texturing-techniques слайд 17
    • Не претендует на то, чтобы быть полным/репрезентативным графиком, он просто иллюстрирует проблемы масштабирования.

      В основном то же самое, за исключением большего количества систем с более сложной связью.

      Практически не изменился с 2007 года
      До недавнего времени!
      Все в масштабе
      Дополнительные функции
      Гораздо большее сообщество
      Проблемы масштабирования и обслуживания

      Система затенения подробно описана Йоханом в 2007 году.

    • Архитектура
    • World Renderer находится в центре внимания презентации с этого момента.
    • Это проходы рендеринга, которые были у нас в Frostbite несколько лет назад для Battlefield 4. Наш конвейер теперь с PBR имеет еще больше проходов и сложности.
    • Состояние World Renderer в период с 2007 по 2016 год.
    • Major World Renderer перестроил архитектуру в 2016 году для устранения накопившегося технического долга, улучшения расширяемости и удобства обслуживания.

      Отсутствие микроуправления явными проходами и ресурсами
      Отсутствие взлома монолитных функций внутри кода движка
      Не присматривать за распределением памяти и алиасингом.

    • Игрушечный пример графа кадров, который реализует конвейер отложенного затенения.
      Граф содержит проходы рендеринга и ресурсы в виде узлов.
      Объявления/зависимости доступа являются ребрами.
    • Отладка визуализации графа с помощью GraphViz. Вывод представляет собой PDF-файл с возможностью поиска (не статическое изображение).
      Графики могут быть удивительно большими и сложными.
      Хотя в некоторых случаях это может быть полезно, это определенно не основной инструмент визуализации, который мы использовали.
    • Мы написали собственный сценарий визуализации (HTML+Javascript и данные JSON, экспортированные из среды выполнения).
      Данные JSON содержат информацию обо всех проходах и ресурсах рендеринга.
      Для каждого прохода рендеринга мы знаем, какие ресурсы были созданы, прочитаны или записаны.
      Для каждого ресурса мы знаем его полную структуру памяти и различные метаданные (имя отладки, размер, формат и т.д.).
      Визуализация является интерактивной и обеспечивает гораздо более полезный обзор того, что происходит в кадре, аналогично тому, что вы найдете в PIX.
    • FrameGraph — это шаг вперед от немедленного рендеринга в режиме сохранения.
      Мы строим график каждый кадр с нуля, поскольку конфигурация рендеринга может динамически меняться в зависимости от действий игрока, кат-сцен и т. д. проходов рендеринга и ресурсов.
    • Поток аналогичен рендерингу мгновенных сообщений, но на этом этапе мы не генерируем никаких команд графического процессора. Просто создаю информацию об операциях рендеринга для кадра.
      : Все ресурсы являются виртуальными во время построения графа. Входные и выходные данные прохода рендеринга объявляются с помощью дескрипторов виртуальных ресурсов.
    • Некоторые проходы рендеринга могут иметь эффекты, невидимые для FrameGraph (например, обратное считывание данных с графического процессора). Такие проходы явно отмечены как имеющие побочные эффекты.

      По-прежнему требуются некоторые постоянные цели рендеринга (TAA, SSR и т. д.). Их можно импортировать в FrameGraph.

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

    • Простой фиктивный проход рендеринга, создающий целевой ресурс рендеринга.

      Очень похоже на создание обычной текстуры, за исключением того, что мы также указываем начальное состояние ресурса (очистить или отбросить/неопределенное)
    • Проход рендеринга, который считывает одну текстуру и записывает в другую.
      При записи текстуры создается переименованный дескриптор. Это позволяет нам отлавливать ошибки, когда ресурсы изменяются в неопределенном порядке (когда один и тот же ресурс записывается разными проходами).
      Переименование ресурсов обеспечивает определенный порядок выполнения проходов рендеринга.
    • Абстрактные/виртуализированные ресурсы позволяют использовать некоторые удобные приемы. Ресурсы могут быть объявлены раньше, но их память будет выделена только при первом использовании. Пример использования — ресурс буфера глубины. Мы знаем, что он понадобится нам для выполнения 3D-рендеринга, но нам не обязательно знать (или заботиться), использует ли наш конвейер рендеринга предварительный проход глубины. Предварительный проход глубины, проход gbuffer и проходы геометрии с прямым затенением просто записывают в ресурс, который требуется объявить заранее.

      Дескрипторы ресурсов FrameGraph имеют прикрепленные к ним метаданные, которые можно запрашивать на этапе установки.
      Это позволяет некоторым проходам рендеринга создавать производные ресурсы. Например, общий проход рендеринга с понижающей выборкой может создать выходной ресурс, который разделяет все свойства ввода, но переопределяет ширину/высоту. Флаги привязки ресурсов также могут автоматически вычисляться в зависимости от того, как используется ресурс. Пассу, который создает целевой ресурс рендеринга, не нужно знать, что этот ресурс будет использоваться в качестве БПЛА и т. д.
      Одна из самых волшебных операций, которые возможны на виртуализированных ресурсах, — это MoveSubresource. Создайте псевдонимы ресурсов, которые будут созданы будущими проходами рендеринга.
    • Можно реализовать общий конвейер рендеринга, создающий выходную текстуру, которая представляет собой простой ресурс 2D-изображения.
      Его можно комбинировать с конвейером фильтрации зонда отражения, который принимает входные данные кубической карты.
      Операция перемещения может использоваться для назначения ресурса «Буфер освещения» одной из граней кубической карты.
      Это приводит к тому, что модуль отложенного затенения выполняет запись непосредственно в поверхность кубической карты вместо создания отдельной цели рендеринга.
      Один и тот же модуль отложенного затенения можно использовать в другом контексте без операции перемещения. В этом случае FrameGraph выделит временную цель рендеринга для вывода.
    • Структуры данных FrameGraph

      Плоский массив используемых дескрипторов ресурсов для RenderPass
      Плоский массив RenderPasses в FrameGraph
      Плоский массив ресурсов в ResourceRegistry
      Дескрипторы ресурсов являются просто индексами в этом массиве
      Фаза компиляции линейно проходит через все RenderPass
      Вычисляет количество ссылок для ресурсов
      Вычисляет первых и последних пользователей для ресурсов
      Вычисляет асинхронные точки ожидания и барьеры ресурсов
      Порядок выполнения RenderPass определяется порядком установки
      Нет переупорядочения во время компиляции

      Алгоритм отбраковки

      Простое заполнение графа из ресурсов, на которые нет ссылок.

      Вычислить исходный ресурс и передать счетчики ссылок
      renderPass.refCount++ для записи каждого ресурса
      resource.refCount++ для каждого чтения ресурса
      Идентифицировать ресурсы с refCount == 0 и поместить их в стек
      Пока стек не пуст
      Извлечь ресурс и уменьшить счетчик ссылок своего производителя
      Если производитель.refCount == 0, уменьшить количество ссылок ресурсов, которые он считывает
      Добавить их в стек, когда их refCount == 0

    • Иногда бывает удобно добавлять в граф проходы рендеринга и ресурсы, не проверяя предварительно, нужны ли они.
      Например, мы всегда можем добавить определенные визуализации отладки или специализированные проходы, такие как линеаризация буфера глубины.
      Это немного снижает сложность конфигурации конвейера рендеринга.
    • Движок содержит множество функций, и принятие решения о выполнении определенного прохода рендеринга может оказаться сложной задачей. Это также вводит некоторую связь между проходами.

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

    • Фаза выполнения довольно проста. Перебрать проходы рендеринга, которые не отбракованы, и вызвать их функцию обратного вызова выполнения.
      Этот этап почти идентичен тому, как выполнялся рендеринг до FrameGraph. Просто используйте RenderContext API, за исключением того, что сначала необходимо девиртуализировать ресурсы FrameGraph.
    • Эффективные асинхронные вычисления сегодня требуют определенных усилий. Хотя у нас есть все зависимости от прохода рендеринга и ресурсов на графике, мы не знаем, какие узкие места будут возникать на графическом процессоре во время выполнения. Не нужно, чтобы вычислительные проходы с высокой пропускной способностью выполнялись с требовательной к пропускной способности графикой (ни для кого не должно быть новостью).

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

      Завершен механизм ручного согласия на проходы рендеринга. Асинхронные проходы запускаются на основной временной шкале в точке, где они будут выполняться последовательно (мы не меняем порядок проходов).
      Точка синхронизации автоматически добавляется в основной конвейер перед первым проходом рендеринга, использующим выходные данные асинхронного прохода.

    • Пример конвейера фильтрации АО на основе вычислений.
    • Генерация и фильтрация буфера AO могут быть перемещены в асинхронную очередь, но время жизни ресурсов должно быть немного увеличено (до точки синхронизации).
    • Это все, что вам нужно сделать в высокоуровневом коде. Очень просто ответить на такие вопросы, как «что произойдет, если мы запустим эту асинхронность?».

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

    • Удобство программатора очень важно. Не нужно вводить слишком много стандартного кода или нарушать поток кода.
      Начал с класса C++ с виртуальным execute(), но быстро понял, что такой подход требует переноса довольно большого количества кода.
      Также требуется немного сантехники для передачи данных между фазами установки и выполнения.

      Реализован API на основе лямбда для повышения удобства. Это также значительно упростило перенос устаревшего кода рендеринга на новую систему.
      Начал с простой упаковки огромных фрагментов кода в лямбда-выражения. Постепенно заменил сырые ресурсы переходными процессами и разделил монолитные лямбда-выражения на более мелкие.
      В конце концов последние небольшие блоки кода были перемещены в автономные функции. Спагетти в основном распутаны 

      Цена, которую мы должны заплатить, — API установки FrameGraph с большим количеством шаблонов.

    • addCallbackPass() — это функция шаблона, которая создает класс передачи рендеринга за кулисами, который параметризуется с помощью PassData и лямбда-выражения.

      Лямбда-выражение встроено в addMyPass(), но выполнение лямбда-выражения отложено. Лямбда установки может захватывать все по ссылке, но выполнение должно захватывать по значению. Захват данных по значению немного опасен, так как можно случайно захватить указатель, выпущенный до фазы выполнения. Также возможен случайный захват огромных структур по значению. К счастью, мы можем обеспечить, чтобы размер исполняемой лямбда-выражения был ниже определенного размера во время компиляции (мы остановились на ограничении в 1 КБ).

    • Не обязательно нужна единая глобальная доска. Модули могут создавать свою собственную доску в рамках своей области настройки, передавать в нее некоторые данные из родительского модуля, а затем копировать результаты в родительскую доску в конце.

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

      Недопустимый доступ к доске можно проверить только во время выполнения.

      В итоге мы считаем, что преимущества перевешивают недостатки.

    • Основа FrameGraph.
    • Резервирование одного большого пула виртуальной памяти
      Выделение блока виртуальной памяти текстуры при первом использовании
      Использование нелокального распределителя памяти общего назначения
      Исправление или выделение дескрипторов ресурсов GNM по мере необходимости
      Возврат блока виртуальной памяти после последнего использования
      Выделение физической памяти для охвата диапазона VA, используемого в текущем кадре
      Увеличение пула физической памяти по требованию
      Сокращение до максимальной отметки последних N кадров
      Ресурсы перекрываются в виртуальном адресном пространстве
      Изначально понимается инструментами отладки графики PS4 (Razor)
    • Немного похоже на PS4, за исключением множества непересекающихся диапазонов адресов вместо одного.
      Невозможно использовать один диапазон, так как его невозможно уменьшить без остановки работы графического процессора или временного увеличения использования памяти.
      Несмотря на эти недостатки, мы по-прежнему можем иногда повторно использовать память и видим значительное общее снижение водяных знаков.

      В настоящее время Frostbite не выполняет глобальную оптимизацию распределения памяти, но теоретически это может быть реализовано. Проход глобальной оптимизации позволит объединить кучу 2 с кучей 6. Это уменьшит общее количество куч и водяной знак памяти.

      Конкретные проблемы с кучами ресурсов в текущем D3D12:

      Кучи уровня 1 имеют ограничения на типы ресурсов, которые могут быть размещены в них. Только буферы, или только текстуры, или только цели рендеринга и буферы глубины. Необходимо создавать отдельные кучи для разных типов ресурсов. Большинство временных ресурсов, которые мы называем псевдонимами, — это RT или DS, так что это не так уж плохо. Мы принудительно устанавливаем флаг RT на транзиентной текстуре, даже если пользователь специально этого не запросил.

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

      Созданный ресурс нельзя переместить. Это означает, что если «расписание» выделения памяти немного изменится, некоторые объекты изменят свое размещение, и их придется создавать заново. В некоторой степени эту проблему можно обойти, кэшируя размещенные D3D-объекты (ресурсы и различные виды) и повторно используя их, когда это возможно (потенциально много кадров спустя, когда расписание распределения снова меняется на совместимое). Расписание распределения ресурсов может меняться в зависимости от действий игрока, кат-сцен, пользовательского интерфейса и т. д. Однако обычно существует лишь несколько уникальных расписаний, поэтому можно использовать кеш LRU.

      Этих проблем просто не существует на консолях. Мозаичные ресурсы могут оказаться весьма удобными в будущем (почти такой же уровень эффективности, как сглаживание памяти XB1), однако по состоянию на октябрь 2016 г. их использование в качестве RTV/DSV сопряжено со значительными накладными расходами ЦП и ГП. Кроме того, ограничения уровня кучи ресурсов препятствуют эффективному обновлению сопоставления листов с помощью CopyTileMappings. Иногда мы хотим использовать несколько куч в качестве источников страниц для поддержки одного ресурса. Текущий API UpdateTileMappings может принимать только один указатель кучи, поэтому требуется несколько вызовов API.

    • Динамическое выделение памяти и псевдонимы без фрагментации
      Автоматически близкое к оптимальному использование ESRAM
      Не нужны непрерывные блоки памяти
      Ресурсы могут быть полностью или частично в ESRAM
      Переполнение в DRAM, когда используется каждая страница ESRAM
      Выделение памяти вручную на основе профилирования
      Запретить ESRAM для некоторых ресурсов
      Распределить ESRAM сверху вниз или снизу вверх
      Ограничить ESRAM до % ресурса, остальное поместить в DRAM
    • Использовать пул физической памяти из страниц ESRAM и DRAM
      Выделить все ресурсы по уникальным виртуальным адресам
      VirtualAlloc, CreatePlacedResourceX
      Выделить страницы физической памяти из пула при первом использовании
      Сначала страницы ESRAM, переполнение в DRAM
      Расширить пул DRAM по требованию
      Сжать DRAM пул на основе максимальной отметки последних N кадров
      Возврат физических страниц в пул после последнего использования
      Обновить таблицу страниц графического процессора перед выполнением других команд
      ID3D12CommandQueue API 9, специфичный для XB10403 Концептуально аналогично CopyTileMappings
      Обновление таблицы страниц происходит на временной шкале графического процессора
    • Поскольку разные проходы рендеринга могут использовать одну и ту же физическую память, нам нужно добавить точку синхронизации между ними, чтобы убедиться, что они не выполняются параллельно и не перезаписывают память друг друга.

    Добавить комментарий