frei0r - 오픈소스 이미지 콤포지션(트랜지션) 상세설명.(1) - Mixer2 Part1 alpha...

Frei0r Frei0r은 Natron이나 kdenlive같은 비디오 에디터에서 사용되는 composition,transition, merge 툴이다.  adobe의 트랙 매트 (track matte)효과를 kdenlive에서 어떻게 구현할지를 생각하다가 이것으로 구현할 수 있을 것 같아 찾다가, 너무 이름이 직관적이지 않아 쓸 때마다 헛갈릴 것 같아 정리를 해놓는다.  Mixer2  Mixer2는 8비트 unsigned int형의 자료를 사용하여 각 픽셀의 색상정보를 저장한다. Mixer3을 봐야 알겠지만, 더 큰 자료형을 사용하는 부분이 구현이 되어있지 않다면, frei0r은 사용하지 않는 것이 좋을 것이다.   코드 호출이 어떻게 되는지를 몰라서, 일단은 A를 윗 레이어, B를 아래 레이어로 생각하고 글을 쓴다.     kdenlive에 넣어서 테스트 해보니, A가 아래 B가 위로였다. natron에서는 다를 수 있으므로 1번 2번으로 전부 다시 고쳤다.     ᅟAddition (더하기) 더하기 효과는 간단하다. 윗 이미지와 아래 이미지의 rgb값을 더 한다. 최대 값은 255로 한다.  알파의 값은 두 알파의 최소 값으로 한다.  고로 항등 image에 해당하는 윗 이미지는 (0,0,0,255)로 이루어진 이미지이다.  2번 레이어의 알파는 min연산이다보니, 중간 값을 이용하기 보다는, 이진의 마스크 효과를 사용할 수 있고, 윗 레이어를 통해 닷지 효과처럼 사용한다.   그리고 중요한 점 중 하나는, 윗레이어(마스크)와 아래레이어(배경)의 교환 법칙이 성립한다는 것이다. 많은 효과들이 교환 법칙이 성립하지만, 아닌 것들도 많다. gimp의 이미지 합성 툴 가운데에도 그런 것이 있다.  그룹레이어를 사용하지 못하는 경우에 교환 법칙이 성립하는 것을 유용하게 사용할 수 있고, (서로는 순서가 상관 없지만 그 각각도 위아래가 따로 있으므로 )노드 방식의 이미지 에디터에서 연결순서가 바뀌어도 같은 경과가 나오기에 유용하다. 이제 아래부터는 그냥 교환법칙이

남이 Natron으로 만든 Lower Third를 연습하다가 템플릿처럼 사용하는 방법을 알게 되었다.

이미지
 Natron은 node 기반 opensource vfx application이다.  vfx 및 드로잉 툴들은 어느정도 발전이 되었다면, node기반 또는 레이어 기반의 형태로 나아간다.  Node기반 툴들은 Davinci resolve,(NLE) Blackmagic Fusion(VFX)이라는 걸출한 유료프로그램이 있고, Blender라는 NLE, 3D modeling, Node vfx를 지원하는 툴도 있다.  Natron은 무료이며 일단 openfx기반이라 다양한 행위를 할 수 있다고 하는데, 그게 무슨 장점인지는 모르겠다.   Natron은 일단 Fusion이라는 툴을 써본 결과로 말하자면, 아무것도 배우지 않은 백지 상태에서는 차이를 알 수 없다.  왜냐 ... Layer기반을 쓰다가 이걸 처음 만지면, 어떻게 하는지 알수가 없기에... 그러하다.  뇌에서 Layer가 아닌 모든 것들이 다 공통으로 묶인 것으로 여겨진다.  Natron Youtube Lower third 강좌를 따라해보니, Natron은 결과물 출력으로 단일영상 또는 이미지시퀀스로  처리한다.   여기까지 따라하니, 내 이름을 특정 Text대신 쓰고난 이후에,  다양한 상황에서 쓰기 어렵다는 생각이 들어, 템플릿으로 쓸 방법을 찾는다.  일단 Natron Project파일은 xml기반이라, 노가다를 하고, nodejs를 사용하면, 텍스트 기반이니 당연히 가능하다.   일단 여러 검색을 해보니, Natron을 터미널에서 사용해, 출력물을 얻는 방법이 있음을 알게 되었다.  외부 툴을 사용하지 않고, Natron만 가지고 이것을 하고 싶다. xml은 구조화는 잘되어 있지만 인간이 접근하기 좋은 규격은 아니다.  Natron은 python script를 사용할 수 있고, 잘못검색을 하면, python을 프로젝트 파일처럼 사용하는 부분만 보게된다.  좀 더 신경을 쓰면, 프로젝트파일을 불러오고, onload시 python을 불러오는 옵션이 있다. -b는 터미널에서  바로 출력물을 얻겠다.  -l

우분투 리눅스에서 모니터 오버클락하기.

이미지
  리눅스에서 디스플레이 해상도 등과 관련된 패키지는 xrandr이다.  xrandr을 통해 다양한 display mode를 체험할 수 있다.  지금 현재 사용하고 있는, 모니터는 DELL 2312HM으로 홈페이지상 스펙으로는  1920x1080  60이 한계인 것으로 나타난다.  처음 xrandr을 누르면, 이 이하의 설정가능한 다양한 해상도 등이 나온다.  1080x1024 75.02 60  640x480 75 59.94  등이 나오는데, 이 값들은 일종의 디스플레이 업계의 약속된 추천해상도라고 할 수 있다.  윈도우 시스템의 경우는 드라이버에 따라서, 굉장히 다양한 해상도 설정이 가능한 경우가 있는데, 이 해상도들은, 일종의 업계 호환해상도라고 할 수 있다.  이 호환 해상도에 해당하는 것이 바로 gtf, cvt라는 것이다. (위키에 검색해보시오) 여기에는 그래픽카드에서 모니터로 신호를 보낼 때, 어떤 주파수로 신호를 보내고, 어디서부터 어디까지인지 신호를 보낼지에 대한 일종의 약속이다. 이 신호는 결국 픽셀정보를 직렬로 보내다보니 직사각형의 화면정보를 열별로 나누어 보내게 되고,  어디부터 시작인지 어디가 끝인지, 열의 시작과 끝이 어디인지 및 몇가지 정보전달을 위한  위한 메타데이터를 필요로 하게되고 이러한 값들이 직사각형 정보덩어리의  테두리 여백으로 들어가게 된다.  기본 규약은 어차피 자동으로 처리가 되므로 필요한 것은 저 호환 해상도에 해당하는 gtf와 cvt이다.  리눅스의 경우 gtf를 누르면 다음처럼 나오고, 원하는 해상도를 입력하면 다음처럼 나온다.  cvt의 경우도 마찬가지이다.  이렇게 얻은 정보를 가지고 xrandr를 사용하여 추가하여 사용할 수 있다. (싱글모니터는 요렇게하지만 듀얼부터는 몇자를 더적어야) Modeline 뒷 정보를 다음처럼, xrandr --newmode  "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vs

Image Compositing 정리. 1 (Screen, Multiply) 스크린, 곱하기

이미지
Screen은  검은색 배경으로 된 VFX를 합성할 때 사용되고는 한다.  공식상, 검은색의 레이어는 원본의 색을 그대로 노출하고, 흰색의 레이어는 완전히 (RGB  각 값도 마찬가지)  아래의 값을 지워버린다.  RGB, 원색 레이어를 통해 해당 색의 보색에 대한 필터로 작용할 수 있다.  중간단계에서 보이는 부분이 재미있는데, 레이어의 색상으로 부터 최대값까지 색상을 압축하면서, 뒷면의 색상차는 그대로 보여줄 수 있다.  24bit(8bit rgb) 이기 때문에 계단 현상은 생길 수 있으나, 뒷배경을 보이면서 오버레이어의 밝기 까지 보여 줄 수 있기 때문에 아주 유용하게 사용된다.  인터넷에 있는 번개, 폭발 연기 등의 프리소스를 사용하여 오버레이어의 콤포지터를 Screen으로 사용하도록 하자.  곱하기 효과는 Screen과는 반대로 작용한다. 흰색일 때는, 베이스 컬러를 그대로 보여주고, 검정색일 때는 검은색이 되어버린다.  레이어의 색상을 최대값으로  검정색으로부터 베이스의 색상을 압축하여 표현된다. R,G,B 의 원색을 사용하여 특정 채널만 뽑는데만도 사용할 수 있다.  배경이 흰색이 소스를 합성할 때 사용하면 좋다.  그러나 배경이 흰색인 소스의 합성은 주로 Y-채널을 조작해  Alpha로 사용하는 Luma Key를 많이 사용한다.    이건 뭔가 사람의 눈과 관련이 있을 것으로 보인다. 빛이 비춰 밝아진 물체를 구분하기는 쉽지만, 특정 부분만 어두워 지는것을 구분하는 일이 더 적어 질 것 같기는 하다. 

NFC Tag로 Wifi 공유하기. (Android, NFC Tools)

NFC Tools 어플리케이션을 킨다.  Write Tab에가서 Add a record로 들어간다. 아래로 스크롤하여  Wi-Fi network를 누른다.  돋보기 버튼을 누른다. 근처에 있는 모든 네크워크가 뜨므로 오른 쪽 상단에  Wi-Fi가 양쪽으로 나가는 아이콘을 클릭한다. (제목 우측:Available Wi-Fi networks) 잠시후 가까이에 있는 Wi-Fi 즉 내가 작업할 놈이 최상단에 뜰 것이다.  그것을 누르고 Authentication 은 가정용에서는 WPA/WPA2-Personal을 고르면 되고, password는 그대로 가져와서 쓰면 된다.  그리고 OK를 누르고 나간면 Write / 약 100bytes  와 같은 버튼이 있다. 그것을 누르고 빈 NFC Tag에 가져다 댄다.   그러면 Wi-Fi에 관한 모든 정보가 기입된다.  모든 작업이 완료되었다. 안드로이드 기기간에는 약속된 NFC Tag기능이 있는데 그 중 하나가 Wi-Fi Network을 추가 하는 것이다.   이제 다른 사람의 핸드폰 또는 본인의 핸드폰에서 해당 비밀번호를 초기화 한후 비접촉 방식으로 접속해보자.  나 같은 경우는, NTAG213이라는 제품을 사용하다보니 최대 144바이트를 쓸 수 있어서 비밀번호 원문이 그대로 Tag에 노출된다.  Wi-Fi 비밀번호를 만들 때, 중복되지 않는 임의의 비밀번호를 생성한다면 노출이 된다해도 나중에 수정하면 된다. 다만 다른데서 쓰는 비밀번호를 그대로 쓰고 싶다면 다른 방법을 사용해보자.  다른 툴을 사용하면, 비밀번호를 Hash 값으로 바꿀 수 있다. 나 같은 경우는 wpa_passphrase를 사용하는데 이것을 통하면, 65자리의 Hash가 얻어진다.  요렇게 했을 때, 원문 비밀번호는 노출이 되지 않으나(무작위 대입방법에는 취약하니 영어만 쓴다거나 하면 안된다. 그냥 랜덤값 쓰고 본인도 NFC 터치로만 연결하자. )   애매하게 150byte정도를 쓰는데 이건 내 ssid가 긴 문제인 것 같다만, (어차피 터치로 할거니 짧듯

Linux Desktop 에서 F13-F24키 셋팅하기.

오래전 PC가 아주 비싸던 시절에는 당연히 키보드가 비싸도 티가 안났고, 대량생산을 통해 단가를 낮출 필요가 없었다. 어차피 전체 영역에서 키보드가 얼마나 차지하겠는가. 그러다보니 참 다양한 키보드가 존재한다.  google에 IBM keyboard F24라고 검색을 해보라. 크고 아름다운, 2줄 기능키가 등장한다. 거기다가 들어본 적도 없는, 수많은 특수 키들이 좌측에 자리잡아 있는 것을 볼 수 있다.  그런데 현실은? 인기있는 키보드 몇말고는 50달러 이상 가는 것도 잘 없다.  그러면 뭔가 표준스러운 한가지 모델로 모두가 통일해서 공장에서 대량생산을 하는 방법으로 간다. 고로 역사적으로 사라진 수많은 키들이 있다.  그 중의 하나가 F13-F24키이다. Apple키보드의 경우에는 F13-F15가 프린트스크린 스크롤락 멈춤 자리에 가 있는 경우도 있고 심지어 넘패드 윗쪽으로 F16-F18,F19  3개 또는 4개가 있는 경우가 있지만, 뭐 여전히 마이너 하고, F15까지 있는 키보드는 모양 자체는 별차이가 없다.  애플키보드라는 놈이 있다보니, 종종 그래도 쓸 수 있는 키보드다. 고로  F키의 경우는 아직도 GUI 개발용 라이브러리에서 대부분 지원한다. 지원하지만 아무것도 맵핑 되어 있지 않을 뿐이다.  그러면 어떻게 이 들을 사용할 수 있을까, 소위 윗글쇠라 부르는 ⇧Shift (ISO Level 2 Key) 를 사용할 수 있다. 위키피디아를 보니, Modern windows keyboard(??)의 경우는 그렇게 사용한다고, 한다.  수많은 어플리케이션들이 범람하다보니, ctrl, alt, win,shift 조합을 매우 많이 하게된다. 이미 우리가 알고 있는 키들은 내가 사용하지 않더라도 누군가가 사용할 컴퓨터에서는 이미 사용되고 있을 수 있다.    이럴 때는 어떻게 하나... ISO_LEVEL 3 Shift Key를 사용하면 된다. 보통은 AltGr키라고 많이 부르는데, 문자영역에서 Shift외의 더 많은 키가 필요할 때 많이 사용된다. 영어 키보드

랑그릿사2 스펠 정리.

스펠 데미지 정리  Lv MRng MLv 1 2 +1 3 4 +1 +1 5 6 +1 7 8 +1 +1 9 10 +1 Reference :  https://strategywiki.org/wiki/Langrisser_II/Spells 랑그릿사의 마법시스템은, 마법 사용자의 레벨만 가지고 따진다.  위저드가 더 강한마법을 쓴다거나, 나이트가 마법이 약하다거나 그런건 없다. 이 레일이란 말은 Tier까지 포함한 말이다.  표에서 나오는 것 처럼, LV이 4, 8에 도달할 때 마다 범위마법의 범위가 1씩 늘어난다. 마법 사거리까지 포함하는지는 나중에 확인 후 고친다.  또 마법LV인 MLV이 2,4,6,8,10에 도달할 때, 1씩 늘어난다.  또  Tier에 따라서 +1씩 또 늘어난다고 한다. 하지만 지금 참조한 페이지는 통합 되어 있다.  예를 들어 워락은 나이트,+0, 실버나이트 +1, 하이랜더 +2 나이트마스터 +3 이런 식이다.   소환수들과 용병들은, 개발자가 제대로 고려를 하지 않아서, 데몬로드 같은 친구들은 1티어라... 마법 범위가 그 모양이다. 그래도 이 친구들도 레벨은 가지고 있으니, 최종 레벨이 되면 약간의 보너스는 얻는다.   Spell      Formula    Range   Cost  Special (MDmg) 매직에로우 0 + MLv*2   5  1    Blast 20 + MLv   2  10    Fireball 3+ MLv   4/3  2    Meteor 10 + MLv   10/2  8    Thunder 5 + MLv   7  4 물위의 적 +1 보너스   Tornado 4 + MLv*2   0/3  2 비병에게 +1보너스   Blizzard 4 + MLv*2   0/4  3    Earthquake 10 + MLv*2   0/5  12  공중유닛 무피해. 매직에로우는 파이어볼보다 강할 수 있다. 다만 그래봐야 큰 차이는 나지 않는다.  블라스트는 매우 강력한 대신, MLv에 따른 차이가 거의 없다.  파볼은 가장 기본적인 범위