重復造輪子の達芬奇DCTL編程參考文檔part.2

P.S達芬奇錯誤日志查看地址:
一般出bug
macOS
Windows?
可以在錯誤日志中搜索 編譯錯誤 compilation faild 查看具體錯誤來debug
macOS:?/Library/Application Support/Blackmagic Design/DaVinci Resolve/logs/davinci_resolve.log
Windows:?C:\Users\<your username>\AppData\Roaming\Blackmagic Design\DaVinci Resolve\Support\logs\ResolveDebug.txt
Linux:?/opt/resolve/logs
5.使用自定義操控UI的dctl
可以從編輯頁面和色彩頁面效果庫中添加自定義DCTL效果(Transform DCTL類型)。要訪問它們,請雙擊或拖動此插件條目: - 編輯頁面 > 效果庫 > OpenFX > 濾鏡 > ResolveFX 色彩 > DCTL。 - 色彩頁面 > OpenFX > ResolveFX 色彩 > DCTL。 添加后,點擊DCTL列表下拉框,選擇所需的DCTL效果以應用效果。
要將新的DCTL效果添加到此列表,請將適當的DCTL文件放在DaVinci Resolve LUT目錄中。 要編輯已加載的DCTL效果, - 在文件瀏覽器中導航到DaVinci Resolve LUT目錄。 - 在文本編輯器中加載適當的DCTL文件進行更改。 - 保存文件。 - 在DaVinci Resolve的檢查器中,按“重新加載DCTL”按鈕以立即查看反映的結果。
DaVinci Resolve支持5種類型的UI元素,使用DEFINE_UI_PARAMS函數,您可以為DCTL插件定義自定義控件并將它們鏈接到DCTL文件中的變量。
1.浮點滑塊?Float Slider: DEFINE_UI_PARAMS([變量名variable name], [標簽tag], DCTLUI_SLIDER_FLOAT, [默認值], [最小值], [最大值], [滑塊步級step])?
2.整數滑塊Int?Slider: DEFINE_UI_PARAMS([變量名], [標簽], DCTLUI_SLIDER_INT, [默認值], [最小值], [最大值], [滑塊步級])?
3.數值框?Value Box: DEFINE_UI_PARAMS([變量名], [標簽], DCTLUI_VALUE_BOX, [默認值])?
4.復選框?Check Box: DEFINE_UI_PARAMS([變量名], [標簽], DCTLUI_CHECK_BOX, [默認值])?
5.組合框?Combo Box?: DEFINE_UI_PARAMS([變量名], [標簽], DCTLUI_COMBO_BOX, [默認值], [枚舉列表enum list], [枚舉標簽列表enum list])
每個DCTL插件可以為每種類型有多達64個UI控件。
參數解釋:?
- [變量名variable name]與UI元素關聯。此變量可以在變換函數內部使用。
- [標簽名稱tag]?文本顯示在UI控件旁邊,向DCTL的用戶描述控件名稱。?
- [UI元素DCTLUI_xxxx_xxxx]?- UI元素?- 允許DaVinci Resolve構建適當的UI控件。?
- [默認值]、[最小值]、[最大值]和[步級]均為整數(除浮點滑塊外,它們?yōu)楦↑c數)
- [枚舉列表enum list] - 用大括號"{}"定義,可在Main Entry函數中使用。
- [枚舉標簽列表enum list] - 用大括號"{}"中的字符串定義,用于在UI中指示枚舉值。它必須包含與[枚舉列表]相同數量的項目
示例:?
? ? DEFINE_UI_PARAMS(gainR, Red Gain, DCTLUI_SLIDER_FLOAT, 1.0, 0.0, 10.0, 0.1)
? ? DEFINE_UI_PARAMS(iters, Iteration, DCTLUI_SLIDER_INT, 1, 0, 10, 1)
? ? DEFINE_UI_PARAMS(gain, Master Gain, DCTLUI_VALUE_BOX, 2.0)
? ? DEFINE_UI_PARAMS(apply, Apply, DCTLUI_CHECK_BOX, 1)
? ? DEFINE_UI_PARAMS(opt, Channel Option, DCTLUI_COMBO_BOX, 1, { RED, GREEN, BLUE }, { Channel Red, Channel Green, Channel Blue })
通過用戶控件、撤消操作或DCTL邏輯對自定義UI參數進行的更改會同時反映在Resolve UI和DCTL變量中。
6.DCTL所支持的數學函數列表
float _fabs(float x) ? ? ? ? ? ? ? ? ?# 返回x的絕對值
float _powf(float x, float y) ? ? ? ?# 計算x的y次方
float _logf(float x) ? ? ? ? ? ? ? ? ?# 計算x的自然對數值
float _log2f(float x) ? ? ? ? ? ? ? ?# 計算x的以2為底的對數值
float _log10f(float x) ? ? ? ? ? ? ?# 計算x的以10為底的對數值
float _expf(float x) ? ? ? ? ? ? ? ?# 計算ex,即x的以e為底的指數
float _exp2f(float x) ? ? ? ? ? ? ? # 計算2x,即x的以2為底的指數
float _exp10f(float x) ? ? ? ? ? ? # 計算10**x,即x的以10為底的指數
float _copysignf(float x, float y) ?# 輸出x,其符號更改為y的符號
float _fmaxf(float x, float y) ? ? ?# 對比輸出較大的x或y
float _fminf(float x, float y) ? ? ?# 對比輸出較小的x或y
float _clampf(float x, float min, float max) ? ? ? ?# 將x限制在[min, max]區(qū)間內
float _saturatef(float x) ? ? ? ? ? ? ? ? ? ? ? ? ? ? # 將x限制在[0.0f, 1.0f]區(qū)間內
float _sqrtf(float x) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # 計算x的非負平方根
float _ceilf(float x) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # 返回大于或等于x的最小整數值
float _floorf(float x) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # 返回小于或等于x的最大整數值
float _truncf(float x) ? ? ? ? ? ? ? ? ? ? ? ? ?# 返回最接近但不大于x的絕對值的整數值
float _round(float x) ? ? ? ? ? ? ? ? ? ? ? # 返回最接近x的整數值,四舍五入時遠離零
float _fmod(float x, float y) ? ? ? ? ? ? ? # 計算x/y的浮點余數
float _hypotf(float x, float y) ? ? ? ? ? ? # 計算x和y的平方和的平方根
float _cosf(float x) ? ? ? ? ? ? ? ? ? ? ? ?# 計算x的余弦值(以弧度為單位)
float _sinf(float x) ? ? ? ? ? ? ? ? ? ? ? ?# 計算x的正弦值(以弧度為單位)
float _cospif(float x) ? ? ? ? ? ? ? ? ? ? # 計算(x * pi)的余弦值(以弧度為單位)
float _sinpif(float x) ? ? ? ? ? ? ? ? ? ? # 計算(x * pi)的正弦值(以弧度為單位)
float _tanf(float x) ? ? ? ? ? ? ? ? ? ? ? # 計算x的正切值(以弧度為單位)
float _acosf(float x) ? ? ? ? ? ? ? ? ? ? # 計算x的反余弦主值
float _asinf(float x) ? ? ? ? ? ? ? ? ? ? # 計算x的反正弦主值
float _atan2f(float y, float x) ? ? ?
# 計算y/x的反正切主值,使用兩個參數的符號來確定返回值的象限
float _atan2f(float y, float x) ?
# 計算y/x的主值反正切,使用兩個參數的符號確定返回值的象限
float _acoshf(float x)? ? ? ? ? ? ? ??# 計算x的逆雙曲余弦的主值
float _asinhf(float x) # 計算x的逆雙曲正弦的主值
float _atanhf(float x) # 計算x的逆雙曲正切
float _coshf(float x) # 計算x的雙曲余弦
float _sinhf(float x) # 計算x的雙曲正弦
float _tanhf(float x) # 計算x的雙曲正切
float _fdimf(float x, float y)?
# 返回x與y之間的正差值:如果x > y,則為x - y,如果x <= y,則為+0
float _fmaf(float x, float y, float z)?
# 將(x * y) + z作為單個操作計算
float _rsqrtf(float x) # 計算x的平方根的倒數
float _fdivide(float x, float y) # 返回x / y
float _frecip(float x) # 返回1 / x
int isinf(float x) # 當且僅當x為無窮值時返回非零值
int isnan(float x) # 當且僅當x為NaN值時返回非零值
int signbit(float x) # 當且僅當x的符號位被設置時返回非零值
T _mix(T x, T y, float a) # T用于表示函數可以接受float、float2、float3、float4作為參數類型,返回:(x + (y - x) * a)。"a"必須是范圍在[0.0f, 1.0f]內的值。否則,返回值未定義。
float _frexp(float x, int exp) # 從x中提取尾數和指數。返回的尾數m是一個大小在區(qū)間[1/2, 1)或0的浮點數, exp將更新為整數指數值,其中x = m * 2^exp
float _ldexp(float x, int exp) # 返回(x * 2^exp)?
注意:浮點值后面必須帶有'f'字符(例如1.2f)
可用的整數數學函數列表
int abs(int x) # 返回x的絕對值
int min(int x, int y) # 返回x和y中較小的值
int max(int x, int y) # 返回x和y中較大的值