2020년 2월 11일 화요일

한눈에 보는 Blending mode 색섞기. (on GIMP)



Top Layer


Bottom Layer


일단 다음처럼 두개의 레이어를 만들고, 여러 효과를 넣어본다.
편의상 여기서는 integer 8bit 로만 나타내며 0-255로 표현한다.
gimp 최신버전 코드를 깟는데 float로 계산한다.

가장 많이 쓰는 Screen 과 overlay 그리고 Multiply(곱)
Screen
Overlay

Multiply












in이 top이고 layer가 바닥이다. 
comp[c] = in[c] * layer[c];

0-1값으로 생각하면 쉽게 어두워짐을 알 수 있다.  이 다음부터는 그림만가지고 이야기한다.

그림은 많이 쓰이는 순서이지만 설명은 Multiply부터 하는 것이 쉽다.



comp[c] = 1.0f - (1.0f - in[c]) * (1.0f - layer[c]);
Screen은 반전 후 곱한 색상을 반전하는 것과 같다.  반대로 좀 더 밝아 짐을 볼 수 있다.


Overlay부터는 top layer와 bottom layer가 서로 동등하지 않다. 일단 normal모드 부터 동등하지 않으므로 이상한 것은 아니다.
if (in[c] < 0.5f)
      val = 2.0f * in[c] * layer[c];
else
     val = 1.0f - 2.0f * (1.0f - layer[c]) * (1.0f - in[c]);
무언가 복잡하다.  Screen과 Multiplay의 중간 느낌이다.
아직 메뉴얼은 그대로지만 photoshop으로 대동단결 했다.
Hard light에서 복사해오자.

Top Layer를 흰색에서 회색, 회색에서 검정 두부분으로 나누어,  어두운곳은 Multiply효과를  밝은 곳은 Screen효과를 준다. 
중간영역의 대비가 커진다. 그 결과 색상이 강해지고, 경계가 날카로와 진다.


다음은 LightenOnly와 DarkenOnly이다.
각값에서 밝은 값과 어두운 값을 취한다.
comp[c] = MAX (in[c], layer[c]);
comp[c] = MIN (in[c], layer[c]);






















다음은 Burn과 Dodge이다.

Dodge
   256 x B / { (255-T} +1 }
comp[c] = safe_div (in[c], 1.0f - layer[c]);


Burn
255- 256x (255-B)/{ T+1}
comp[c] = 1.0f - safe_div (1.0f - in[c], layer[c]);
Dodge의 반대로 작용한다.

Linear burn
그냥 덧셈이다. clipping이 될 수 있다. 
            comp[c] = in[c] + layer[c] - 1.0f;


다음은 조명 계통이다.  
Hard light, soft light, vivid light pin light 등이다. 

Hard light
 255 - (255-2(T-128)) x (255-B) /256   if T > 128
  2 x T x B                                             if T <=128

Top Layer를 흰색에서 회색, 회색에서 검정 두부분으로 나누어,  어두운곳은 Multiply효과를  밝은 곳은 Screen효과를 준다. 
중간영역의 대비가 커진다. 그 결과 색상이 강해지고, 경계가 날카로와 진다.
 if (layer[c] > 0.5f)
{
     val = (1.0f - in[c]) * (1.0f - (layer[c] - 0.5f) * 2.0f);
     val = MIN (1.0f - val, 1.0f);
 }
 else
{
      val = in[c] * (layer[c] * 2.0f);
      val = MIN (val, 1.0f);
}
 Overlay와 동등한 식이지만, 기준이 bottom layer이다. in <-->layer를 하면, 같다. xy축을 바꾸면 바로 알 수 있다. 
Soft light
이름과 달리 Hard light와는 별관련이 없다.  Screen Mode와 매우 유사하다.

멏몇 버전의 GIMP에서는 Screen과 같다. ( 계속 다시 옜날로 가는 경우가 있나보다. )

스크린된 Pixel을 S라고 하자. 

S= 255 - (255-T) x (255-B) / 255

{  (255-B)xT + S} x B / 255   이다. 다만 홈페이지에 오류가 있는 것으로 보인다. 앞항도 255로 나누어야한다. 

무언가 식만 보고 이해하기는 어렵다. 그리고 제대로 적용될지 확신할 수 없기에 쓰면 안될 것으로 보인다. 나머지는 gimp의 코드를 까봐야할 것 같다. 
일단 여기까지 작성하자. 

gfloat multiply = in[c] * layer[c];
gfloat screen   = 1.0f - (1.0f - in[c]) * (1.0f - layer[c]);
gfloat val      = (1.0f - in[c]) * multiply + in[c] * screen;

상위 픽셀에 따라, multiply와 screen을 얼마나 섞을지 정한다. 


Vivid light
if (layer[c] <= 0.5f)
{
     val = 1.0f - safe_div (1.0f - in[c], 2.0f * layer[c]);
     val = MAX (val, 0.0f);
}
else
{
     val = safe_div (in[c], 2.0f * (1.0f - layer[c]));
     val = MIN (val, 1.0f);
}

Overlay처럼 구간을 나누어, dodge와 burn을 적용한다.

Pin light

이것은 lighten과 darken을 조합하는 것 같다.
 if (layer[c] > 0.5f)
                val = MAX(in[c], 2.0f * (layer[c] - 0.5f));
              else
                val = MIN(in[c], 2.0f * layer[c]);



Linear light

if (layer[c] <= 0.5f)
     val = in[c] + 2.0f * layer[c] - 1.0f;
else
     val = in[c] + 2.0f * (layer[c] - 0.5f);
그렇다.




더하기 .

comp[c] = in[c] + layer[c];






빼기, 차이 






2019년 9월 27일 금요일

히어로즈 메뉴얼 정리된거 보다가 혹했으나 아닌 내용.


망각 마법이 걸린 유닛은 근거리 패널티가 없는 우닛도 생긴다고 적혀 있으나, 컴플리트 버전, hota1.5.4에서는 그렇지 않다는 것을 확인함.

타이탄한테 걸어보았으나... 그런거 없었음.

관련 글보니 영문커뮤니티에 관련 내용이 있으나, 거긴 법사할배로 한 내용이라 알아볼 예정.

2019년 9월 19일 목요일

(15+)(약혐) 남자들도 잘 모르는 남자의 몸 (1)



여자들도 모르겠지만 남자들도 대부분 모르고 겪어보기 어렵다.

발기가 되지 않고도, 사정이 가능하다.




때는 아야흐로 작년, 수영장에 자유수영을 하러 아침에 갔다.

이런 아뿔사, 허리 묶는 줄이 한쪽으로 말려들어가서 허리춤을 잠글 수가 없다.

이미 돈은 내고 들어왔으니, 어떻게든 허리끈을 원상복구하고 수영을 하기 위해 안간힘을 써, 긴의자에 앉아 작업을 한다.

처음에는 한 5분이면 되겠지 하는 맘으로 작업을 시작한다.


젓가락이나 바늘이 있으면 그나마 쉽게 작업이 가능하다. 그런데, 당연히 그런게 있을리 없다.

30분을 넘게 그 작업을 한다.

그런데 갑자기, 급한 사정감을 느끼고,(1보직전) 재빨리 화장실로 달려가서 처리하고 심각한 현자타임에 빠졌다.


내가 야동을 보거나, 야설을 보거나 하는 등 어떤 시도를 한 적도 없고, 야한 생각은 커녕, 오기로 작업에만 열중하고 있었고,   전조증상인 발기조차도 일어나지 않았고, 과정속에 어떤 쾌락도 없다.   나는 고도비만이니,(체지방지수 기준) 당연히 밑 기둥은 안타깝지만 살에 파뭍혀 있는 상황이다.

그런 상황에서 저 애기 꼬추만한 놈이, 수영복 작업을 하면서 돌리기 도중에, 온에 스치는 감각에 의해 저런 일이 일어나니  문명인으로서 심한 자괴감에 빠지게 된다. (전조 증상 마저도 없으니 조심할 이유도 없었다. )

굉장히 성적인 상황이지만, 저 일에는 내 자아가, 내 이성이 단 1도 관여하지 않은 상태로, 일어난 일이다. 

사람이 아닌 짐승이 된 듯, 상당히 어이가 없는 일이고, 난 너무 기분이 상해서, 빨리 샤워를 하고 돌아오게 되었다.


이 과정에서 배운건 하나 밖에 없다.

몸이 정신을 지배하고, 정신이 몸을 지배하기도 하지만, 그냥 몸은 그냥 몸일 때도 있다는 것, 아무 의미없지만, 발기, 쾌락과 같은 전조 없이도 사정이 일어난다는 것.




이 글을 쓰면서 생각을하게 된다. 미국에 식물인간(?) 이었었던가, 남자간호사의 강간으로 출산이 일어났다는 이야기.

그 반대도 충분히 가능할 것 같다. 의사(생각)가 없는 식물인간을 이용해, 불법적인 인체실험을 하는 사람, 미친 여자(?)가 있지는 않을까? 이런 생각을 한다.

몸은 그저 몸으로서도 작용을 하고, 성적인 부분도 작용을 하는 것이니...



ps) 이런 기분을 엿 같다고 표현한다.

2019년 9월 9일 월요일

음 ??? 도대체 USB-MIDI 인터페이스는 왜 만든거야??"?

https://www.gearslutz.com/board/electronic-music-instruments-and-electronic-music-production/1112683-do-usb-midi-interfaces-send-midi-faster-than-midi-spec-2.html

단순히 입출력을 한 선으로 처리하려고 한건가...


사람들이 USB랑 DIN 인터페이스 속도차이를 가지고 막 이야기를 하고 있는데


usb-midi 스펙 작성자가 나와서 결론을 내주는데...



daw상에서 미디로 떠있는 친구들은 호환성을 위해서 31.25kbit이상의 패킷 전송을 안한다고 해버리는구만...




뭐 그래서인지... DAW상에서 MIDI가 아니라 그냥 장치이름으로 바로 인식해서 쓰여지기는 하더만... 이게 무슨 짓거리인지...

USB를 쓰는 이득이 없는데 왜 USB???

MIDI 2.0에서는 이게 개선되는것은 맞는건가???



아니면 작성자도 제대로 모르는건가???

과연 DIN MIDI 정도의 속도로 MIDI Wind Instrument의 데이터를 처리할 수 있나??

뭐여

2019년 7월 7일 일요일

2019년 6월 27일 목요일

2019년 6월 27일 - 뉴스.

양현석은 어떻게 내사종결될 것이라는 사실을 알고 있었을까???

블러핑일까? 경찰에서 내부정보가 새고 있는 것일까???
http://imnews.imbc.com/replay/2019/nwdesk/article/5381596_24634.html

27일 양현석은 조사 받으러 나갔고, 버닝썬 관련 법원 출석이 있었지만 28일 새벽인 현재 YG나 버닝썬관련 기사가 daum 연예 많이 본 뉴스 1-30위까지에 '최종훈 정준영 직업은 무직 '으로 4위에 올라간 것 말고 없다. 

  여기는 차트를 볼 때도, 의심이 갔는데, 조회수를 만지는 어떤 방안을 가지고 있는게 아닐까라는 생각을 한다. 주어는 daum kakao일 수도 YG일 수도 있고 주어가 심지어 없을 수도 있다.

송송 커플 이혼 조정 이야기 

태양의 후예를 안봤고, 송중기 나오는 드라마는 본 적 없고, 송혜교 나오는건 순풍산부인과 밖에 없어서, 관심이 좀 덜 했는데, 하루 종일 언론에서 때려대니까? 강제로 관심이 가게 된다. 이거 뭐임??? 
  거기다, 박보검까지 시끄럽다. 아 박보검 나온 것도 본적이 없다. 

정준영 최종훈 법원 출석 

C.N.Blue 이종현하고, 빅뱅 승리는 왜?? 같이 법원에 출석하지 않았을까??

승리는 조사라도 받았다는 보도가 한달전에 있었지만, 이종현은 군검찰에 수사를 받았는지? 검찰에 수사를 받았는지에 대한 기사가 없다. 

아니 북한 통통배가 강원도로 내려와서, 시끄러운 와중에도, 언론을 잠재우는 카드로 이종현을 사용하지 않은 것을 보면, 그냥 조용히 군 안에서 문제를 지우려는게 아닐까 의심이 든다. 

한국당, 女당원 '바지 내리고 엉덩이춤' 논란..여야 "저질 행태"  

흔한 자유당이 자유당한 사건이다. 

2019년 4월 16일 화요일

시스템 시작시(부팅시) 자동실행된 docker가 바로 실행되지 않는 문제를 어떻게 해결해야 할까??




내가 있는 다체계물리연구실에서 오랜기간 동안, sun grid engine 구축을 노력해왔다. 수많은 시도가 있었지만 tftp를 이용한 diskless grid는 구축을 하지 못했지만,   결국에 유의미한 결과를 얻었다.


Ubuntu내에서 apt로 또는 fedora(오래된 과거)에서 rpm으로는  설치했을 때, 뭔가, 라이브러리의 버전관리 문제가 걸려서 아무일도 일어나지 않는다.


결국은 docker라는 툴을 이용해서, centos를 기반으로 구축을 완료했다.

문제는 각 서버를 재시작할 시, 자동으로 다시 실행되도록 셋팅을 해놓았으나, 그렇지 않는다는 것이다.


네트워크 작업이 귀찮아서, 내부의 docker가 22번 포트를 쓰도록하고, 디바이스는 다른 포트를 사용하도록 해놓은 탓에, ssh로 로그인을 하고, 다시 작업하기는 매우 귀찮다. 그것도 최근에 안 사실이지만 그 작업도, docker 명령을 실행만 하면 되는 작업이다.

이유를 알 수 없지만, docker명령이 최초 실행되기 전까지, docker daemon은 메모리에만 가상 시스템을 올려놓고, 실행은 되지 않고 있다.


지금은 컴퓨터가 작아서 하나씩 들어가서 docker ps 명령을 실행했다지만, 컴퓨터가 많으면 매우 귀찮은 작업일 것이다.

나만 그런가 싶어, 구글링을 해보니 docker에 가장 적합한 CoreOS에도 있는 Bug라고 한다. CoreOS에도 있다는 소리는 그냥 Docker의 버그로 보이며, 어떤 곳에도 원래 그렇게 작동한다는 이야기는 없다.

그래도 각 사람들이 알아서 해답을 찾았고 그 방법을 적용하였다.

그 방법은 정말 간단하다. 그냥 ... systemctl을 이용해 최후단에 단발로 작용하는 데몬 하나를(언어도단이지만)  띄우는 것이다.



[Unit]
After=default.target

[Service]
Type=oneshot
ExecStart=/usr/bin/docker version
RemainAfterExit=yes

[Install]
WantedBy=default.target


이 간단한 것을 생각지 못한다니, 참...유감이다. 

뭐 그렇지만, 이전까지는 왜 docker가 올라와 있는데도 접속이 안되는지에 대해서 고민을 해왔으니, 제대로 문제를 파악한 기간이 짧았던 것으로 변명하면 되지 않을까...

한눈에 보는 Blending mode 색섞기. (on GIMP)

Top Layer Bottom Layer 일단 다음처럼 두개의 레이어를 만들고, 여러 효과를 넣어본다. 편의상 여기서는 integer 8bit 로만 나타내며 0-255로 표현한다. gimp 최신버전 코드를 깟는데 float...