기본 콘텐츠로 건너뛰기

HOMM3 - Spell Fire Shield 데미지 계산식.

  전투마법, 보조마법(버프)  -  "불방패" (4) 16 스펠포인트를 사용하며, 1 Spell Power당 1라운드로 작동한다.  Basic : 방어자가 받은 근접데미지의 20%의 데미지만큼, 공격자에게 불속성 마법데미지를 입힌다.            Spell points 소모는 Basic 부터 12이다.  Advanced : Basic과 같다. 다만 25% Expert : Basic과 같다. 다만 30%
최근 글

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가 긴 문제인 것 같다만, (어차피 터치로 할거니 짧듯