2021年7月19日 星期一

修正 Krita 的直線工具異常對齊的問題

 修正 Krita 的直線工具異常對齊的問題

前言

  最近在使用 Krita 時發現直線工具怪怪的,明明沒有壓 shift 也會發生對齊的狀況,而且奇怪的是還會看地方,在不同的地方會有不一樣的對齊行為,這裡把解決的過程做個紀錄。


內容

  在發生直線工具異常的當下本以為是該版本的 Krita 的 Bug ,所以就去更新到最新版本,但不幸地狀況並沒有改變,異常的對齊行為依舊,拖動目的點時總是特定角度就發生對齊,由於異常對齊的地方剛好發生在對稱工具上,如下圖

Krita 的對稱工具

但我發現不論怎麼移動對稱工具的線,直線工具的對齊行為還是會異常,所以排除是對稱工具造成的異常,最後在 google 一陣子發現關鍵字"Snapping",中文翻譯是"吸附到",原來 Krita 有預設的 Snapping ,要如何關閉它呢?如下圖

關閉 Krita 的預設的吸附


Krita 預設會有"吸附到影像邊框"與"吸附到影像中心",這就是造成直線工具異常對齊的兇手,只要將這兩個關閉就不會再發生異常對齊了。


參考資料

[ docs.krita.org ] Snapping

2021年7月12日 星期一

關於 Aery pf1061 的使用心得

 關於 Aery pf1061 的使用心得

前言

   Aery pf1061 是一個平價繪圖板,價格親民又有 8192 階的力度感應,但最近它突然的就壞了,想想我只用了一年兩個月左右它遽然就壞了,這次就順便把使用心得做個紀錄。

 

內容

  Aery pf1061 繪圖板如下圖

Aery pf1061 繪圖板

筆與筆座如下圖

筆與筆座

外觀不知是不是為了省成本使用了看起來很廉價的塑膠,照片由於解析度不足所以看不出來,繪圖板的工作區域相當大( 25.40 cm X 15.24 cm),左側的快捷鍵由於我個人不太愛用繪圖板上的快捷鍵,所以不太清楚他到底好不好用,它是一個中間有個按鍵,並有左右旋轉的功能,最外圈的上下左右各有一個按鍵,可以在原廠的軟體設定這些按鍵與旋鈕的功能。


  原廠軟體的畫面如下

原廠軟體

這個軟體可以調整繪圖板與筆的快捷鍵,也可以調整工作區的大小,但我覺得比較實用的是可以調整壓力,如下圖
原廠軟體的調整壓力

在這裡調整的話就不用每進一個軟體都要調一次,而且提供用曲線的方式來調整,想當直觀


  整體上來用起來相當舒適,由於工作區域大加上 8192 階的力道,可以減少放大縮小的次數,筆的下方按鍵不知是不是我握筆姿勢不良,總是很容易誤按到,可以透過原廠軟體把他調成無作用來解決。原廠軟體本身可以用曲線的方式來調整力度,原廠設定對我來說力度太重了,所以我通常會調輕。


  不知是不是採到雷,這產品我只用了一年兩個月它就故障了,它故障的情形是繪製時會不定時發生自動放開的狀況,也就是劃線時有開頭也有結尾,但中間會不見!它是自動放開,可以透過 Ctrl + Z 來發現,還會不定時的發生卡頓,就是畫到一半會發現明明筆一直在動,但顯示出來卻是筆一直停留在原地,本想這是驅動程式的問題,就透過更新驅動程式的方式來解決,但發現無效,但我不死心又把繪圖板插到另外一台電腦才真正確認是繪圖板有問題。該如何維修呢?從故障的情形來看,繪圖板根筆都有可能有故障,這時我才發現一個有趣的問題,官方為什麼會有只賣"筆"的賣法,一隻筆大概 600 元,如果只是"筆"故障,這樣我就花  600 元,但問題是要如何確認只是"筆"故障?如果壞的是繪圖板,那就變成我多買了一支筆,這問題遽然困擾我一晚,最後我決定直接買 Wacom 的繪圖板,而不是在這決定要不要重買一塊 Aery pf1061 或是賭是不是只有"筆"壞掉,想想當初會選擇 Aery pf1061 就 是因為它 CP 值高,但沒想到它遽然不太耐用,所以最後就決定直接買 Wacom 的繪圖板,這次可真是學習的什麼較便宜沒好貨。

 

參考資料

[ www.aery.pro ] Aery 官網

2021年6月28日 星期一

在 Qt Creator 中修改 MSVC 的執行階段程式庫

 在 Qt Creator中修改 MSVC 的執行階段程式庫

前言

  由於最近需要用 Qt 來使用函示庫,但函示庫是使用 MTd(Multi-threaded Debug) 來建置的,如果要和 Qt 使用的話函示庫勢必要修改選項後重建,所以想說有沒有直接改 Qt 的執行階段程式庫,在此做個紀錄。

 

內容

  Qt 在預設的情形下使用 MDd(Multi-threaded DLL Debug) 作為執行階段程式庫,如果需要修改可以在 .pro 裡面新增以下

QMAKE_CFLAGS_DEBUG += /MTd
QMAKE_CXXFLAGS_DEBUG += /MTd


範例是修改成 MTd(Multi-threaded Debug),當然也可以修改成 MD(Multi-threaded DLL)與 MT(Multi-threaded),只要將最後的參數改成需要得即可,改完後一定"重建"才會生效要注意。


參考資料

[ forum.qt.io ] How do I change the Runtime Library setting in my project in QtCreator?


相關文章與資料

Qt 的專案檔

2021年6月27日 星期日

從 HWND 取得 HINSTANCE

 從 HWND 取得 HINSTANCE

前言

  最近需要透過 HWND 來取得 HINSTANCE ,但不知是不是太久沒接觸 Win32 API ,遽然卡在編譯,在此把學習的過程做個紀錄。


內容

  透過搜尋應該會找到 GetWindowLong() 來取得,所以使用以下

#include <winuser.h>
//
HINSTANCE hIns = (HINSTANCE)GetWindowLong( hWnd , GWL_HINSTANCE);


但編譯後發現"GWL_HINSTANCE"遽然未定義!但透過 Visual Standio 的 F12 可以找到定義,在一番查找後才知道 GetWindowLong() 是給 32 位元系統在用的舊 API ,新的 API 是 GetWindowLongPtr() ,用起來如下

#include <winuser.h>
//
HINSTANCE hIns = (HINSTANCE)GetWindowLongPtr( hWnd , GWLP_HINSTANCE);


這裡要注意後方的 Marco 名稱是有些微的差異的,GWLP_HINSTANCE 不論是 32 位元或 64 位元都會存在,但 GWL_HINSTANCE 僅存在於 32 位元,如果用 F12 去 wunuser.h  裡可以發現 64 位元時該 Marcro 會被 undef 掉,這就是為什麼會發生未定義錯誤的原因。


參考資料

[ docs.microsoft.com ] GetWindowLongPtrW function

2021年6月16日 星期三

Python 的鏈式比較

 Python 的鏈式比較

前言

  最近在 [ www.itread01.com ] 【python】簡化鏈式比較 發現 Python 的比較語法有個特別的寫法叫"鏈式比較",在此把學習的過程做個紀錄。


內容

  先來看看語法範例,如下

value = 60
#Old style
if 20 < value and value <100:
    print('True')
else:
    print('False')
#New style
if 20 < value < 100 :
    print('True')
else:
    print('False')


在一般的程式語言會需要做兩次比較的描述,但 Python 提供可以一次就比較且語法直觀,不過我進一步實驗以下

value = 60
if 20 < value != 100:
    print('True')


結果是會列印"True",也就是語法不限於小於或大於的比較運算,只要這個語法想成會拆開個別的比較運算後再用'and'來得到結果就不覺得這語法神奇了。


參考資料

[ www.itread01.com ] 【python】簡化鏈式比較

 


2021年6月8日 星期二

Blender 的 Shader 原始碼查詢

 Blender 的 Shader 原始碼查詢

前言

  Blender 從 2.8 以後開始使用 Shader node 的方式來編輯 Shader ,雖然編輯起來很方便,但有時會需要知道它實際的計算的方式如'MixRGB node',在此把查詢的方法做個紀錄。


內容

  原始碼的位址在 [ github.com ] Blender 的 Shader 原始碼 ,開啟後可看到以下

Blender 的 Shader 原始碼


圖中可以看到每個檔案都是 .glsl ,那如何查找 Shader node 對應的原始碼呢?以下以'MixRGB node'為例,透過檔名的字尾來查找對應的原始碼,如下圖

'MixRGB node'的原始碼

圖中可以看到檔名'gpu_shader_material_mix_rgb.glsl'就是'MixRGB node'的原始碼,點開可看到如下
'MixRGB node'的原始碼內容


'mix_blend'對應到"Mix",'mix_add'對應到"Add",其它都可以依此類推找到對應原始碼。


參考資料

[ github.com ] Blender 的 Shader 原始碼

2021年6月2日 星期三

另外一種漩渦紋理(Texture)

 另外一種漩渦紋理(Texture)

前言

  最近看到 [ www.youtube.com ] Make a Spiral in Under 5 Minutes Using Nodes || Blender 2.82 裡面的作法萃取後可以產生漩渦紋理(Texture),和之前的 產生漩渦的紋理(Texture) 方法有一些不同,這裡做個紀錄。


內容

  先來看 Shader node 的部分,如下圖

Shader node 的做法

結果如下

範例的結果

Shader node 裡被紅圈圈起來的地方可以控制漩渦的圈數,這是上一次 產生漩渦的紋理(Texture) 的做法辦不到的,把該數值調成"1",可以得到下圖

Multify node 的數值為"1"的結果


將該數值調成"10",可以得到下圖

Multify node 的數值為"10"的結果


參考資料

[ www.youtube.com ] Make a Spiral in Under 5 Minutes Using Nodes || Blender 2.82


相關文章與資料

產生漩渦的紋理(Texture)