UE4 大圖輸出 (HighResScreenshot)

導讀

如果你對「像素」、「印刷尺寸」、「DPI」之間的關係還不夠熟悉可先參考以下連結
數位影像、像素、影像大小、解析度、列印尺寸
照片印刷不失真,你真的會 DPI 換算嗎?

在UE4中欲擷圖供大圖輸出

在UE4中可透過High Resolution Screenshot功能來取得大像素圖檔,但在實際使用上有一些限制與瓶頸,本篇文章將詳細介紹細節與測試案例分享

一、計算目標像素大小
假設設定目標印刷尺寸為 140 x 220 cm,350 DPI,則得出欲取得像素尺寸為 19291 x 30315 px

計算像素大小
方法一,透過影像處理軟體的影像尺寸來做換算
方法二,線上轉算工具

二、高解析擷圖 (解析限制與操作瓶頸)

  • UE4編輯器內建高解析擷圖工具倍率最高限制為10倍
  • 擷圖期間若電腦記憶體不足,則會程序崩潰
  • 擷圖像素尺寸過大會直接顯示系統不支援

// 編輯器內建擷圖工具,基準1倍是指當前viewport大小
// 編輯器擷圖工具最高倍率限制應可修改引擎原始碼來突破限制
// 此處系統不支援應是指顯卡渲染架構限制 UE4 AnserHub: HighResShot multiplier too large

「the screenshot is being rendered to a texture, not just a memory buffer, so it will be limited by the maximum size of a texture in the graphics pipeline.」

「In Direct3D 11, it looks like it's set (by DirectX) at the max size of 16384」

三、測試與案例分享
若記憶體為16GB,則最大操作上限約為 viewport size: Full HD x 8倍
記憶體使用48GB,可支援 viewport size: Full HD x 10倍 取得像素約 6000 x 12000 px
記憶體使用48GB,使用4K螢幕,倍率設定4.8倍 取得像素約 10000 x 16000 px

擴展 viewport大小
方法一,UE4 editor -> editor preferences -> set window size
方法二,連接支援更大解析度的顯示器 例:4K螢幕

根據現有架構極限,取得像素極大值 10000 x 16000 px,目標印刷尺寸 140 x 220 cm,單圖檔僅能支援至 185 DPI

// 若要再嘗試突破限制,需支援 DirectX 12架構的環境


這個網誌中的熱門文章

Windows10 版本1607後可啟用支援長路徑檔名 (Maximum Path Length Limitation)

標準使用者如何執行需系統管理者權限的程式

Shared Memory