본문 바로가기

Source

(14)
보케 효과를 만들어 보기 #1 심도가 낮은 렌즈와, 큰 크기의 촬상면을 가진 DSLR 같은 종류가 아니면 찍기 힘든 사진이 있다면 아마 배경이 뭉개진 이미지들이 아닐까 합니다만, 사실 단순이 Gaussian blur 만 줘서는 큰 렌즈의 빛의 굴절로 인해 생기는 일명 Bokeh 라는 형태를 만들어 내기가 쉽지는 않습니다. 그래서 어떻게 Bokeh 를 만들어 낼까? 란 고민을 하다 scratchpixel.com 에 한 페이지를 보게 되었습니다. circualr shifting 이라는 형태를 가지고 빛이 렌즈와 조리개를 통해 촬상면에 맺히는 형태를 흉내 낸 시뮬레이션 정도 이긴 합니다만 꽤 그럴싸한 결과물을 얻을 수 있었습니다. 원래 소스는 조금 복잡한 처리를 해야 하나, 제가 이를 조금 수정 하여 다음 github 위치에 소스를 공개하..
윈도우용 조이스틱 (X Input) 테스터 소개 이 프로그램은 윈도우에서 X Input 을 지원하는 조이스틱을 테스트 하기 위한 프로그램 입니다. 조이스틱을 사용하다 보면 아날로그 축이 틀어져서 게임을 하기에 거슬리게 되는 경우가 생기는데, 이를 수정 할 때 측정 하려고 만든 프로그램이며 오픈소스로 누구나 소스 개발 참여가 가능 합니다. 업데이트Version 0.1.3.20 내부 UI 적 변경을 많이 하였습니다.Copyright 표시 추가 하였습니다. 오픈 소스 위치https://bitbucket.org/rageworx/winjoysticktest/src/master/ 소스를 빌드 하기 위한 조건 이 오픈소스는 MSYS2 ( 또는 MSYS ) 와 MinGW-W64 를 기반으로 만들어 졌으며, 별도의 프로젝트를 지원 하지 않고 bash 나 zsh ..
FLTK 1.3.4-1 을 위한 fl_imgtk 개발 중. FLTK 를 쓰면서 항상 불편 한 점은 여러 있을 수 있겠습니다만, 기본적으로 이미지 처리를 하는 기능이 너무 빈약 하다 보니, 이런 점들을 하나 둘씩 만들어 쓰다가 결국 이번에 하나로 뭉치기로 하였습니다. 아직까진 개발중인 부분이 많다 보니 어디에 올리진 않고 있습니다만, 곧 정리가 더 되는데로 GitHub 나 BitBucket 에 올리는 것을 목적으로 할 예정 입니다. 기본적으로 현재 여러 기능들이 지원 되며, 그 항목은 다음과 같습니다. Fl_RGB_Image 를 이용한 다양한 처리 ( Fl_JPEG_Image 나 Fl_PNG_Image 의 color depth 3 이상이면 사용 가능 ) 이미지 고속 회전 90도, 180도, 270도이미지 자유 회전 0~359 도 (alias 처리는 하지 않음)밝기..
[FLTK] HICON 에서 Fl_RGB_Image 로 변환. 이 소스 코드는 rk HDRi Studio 을 만들면서 필요에 의해서 만들어진 것 입니다만, FLTK 에서 자체적으로 윈도우를 만들어 쓸 때, 아이콘을 그리고 싶은데 막상 HICON 을 이미지 원본으로는 쓸 수 없을때 Alpha 를 가진 32bit RGB 이미지로 만들어 쓰기에 좋다고 하겠습니다. 먼저 icon_to_flrgb() 함수는 다음과 같습니다. Fl_RGB_Image* icon_to_flrgb(HICON hIcon) { BITMAP bm; ICONINFO iconInfo; GetIconInfo(hIcon, &iconInfo); GetObject(iconInfo.hbmColor, sizeof(BITMAP),&bm); int width = bm.bmWidth; int height = bm.bmHe..
MinGW-W64 용 DirectInput 소스 (키보드,마우스,조이스틱) MinGW-w64 프로젝트 부터 DirectX 관련 SDK 가 포함 되어 있으므로 윈도우 어플 개발에 매우 편리함을 얻을 수 있습니다만, MFC 처럼 뭔가 꽁꽁 묶여져 있는거 찾기가 사실 어렵다 보니 직접 만들어 써야 하는게 많은건 사실 입니다. 대신 쾌적함을 얻을 수 있는건 덤 이지만 ... 그래서 제가 진행 중인 프로젝트 중에 DirectX 의 2D, input 을 가져다 쓰면서 좀 더 편리하게 써 보고자 만들었던 것을 공유 하고자 합니다. 사용은 간단 합니다. 먼저 현재 사용되는 윈도우에 생성 부분 쪽에 InitDirectInput() 를 사용하여 Dinput 을 초기화 합니다. 이떄 반환되는 값은 HRESULT 가 아니라 DXINPUT_INIT_RESULT_KEYBOARD, DXINPUT_INIT..
[FLTK] + DirectX8 + MinGW, Direct Input 으로 조이스틱 쓰기 예제. 바로 전에 올린 post 에 이어서 몇가지 작업을 더 해 보고 예제를 올려 볼까 합니다.이번에 적용한 것들은 다음과 같습니다.joystick.h/cpp(c 로 컴파일 가능) 으로 별도 API 처리.FLTK ( 주의: fltk-1.3.3-ts 사용해야 flushing 계속 해도 죽지 않음 ) 를 사용한 시각적 표현.pthread 로 polling 을 통한 update 부터 화면 표시 까지 구현.단, 이 예제에서는 Xinput 이나, Analog 부분 ( Z axis, Z rotate ) 부분 처리는 빠져 있습니다.polling 은 thread 내에서 sleep 을 30ms 하므로, 이론상으로 1초에 30 번 가량일 듯 합니다만, 이정도면 손가락이 신의 속도가 아니면 문제는 없어 보입니다. 예제는 Code:..
[FLTK] Fl_RGB_Image 로 부터 회전된 이미지 얻기. FLTK 는 여러 플랫폼에서 간단하면서 깔끔한 UI 를 만들기에 매우 좋은 GUI library 입니다만, 기본 기능에만 기준을 두고 있다 보니 이미지 처리 ( 리사이즈나 회전 등 ) 는 없는 것이 아쉬운 부분 입니다. 이번의 경우는 이미지를 회전 시켜 표시 해야 하는 경우 (위 이미지 처럼 뭔가 열심히 일 하고 있으니 기다려 주십사~ 하는) 기본으로 그리는 수준으로는 깔끔한 이미지를 얻기 힘듭니다. 이를 개선 하기 위해 구글링 중 CodeGuru 에서 이미지 회전에 관한 글 을 찾았습니다. 그리고 이를 응용하여 다음과 같은 API 를 만들어 보았습니다. #include #ifndef M_PI #define M_PI 3.141592654 #endif ⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄..
CPU 사용율을 알아 오는 소스 (C++) 이 소스코드는 MinGW 32/64bit 모두에서 동작을 하는 CPU 사용을 확인을 위한 C++ 소스 코드 입니다. cpuu.h 와 cpuu.cpp 파일 내에 CPUUages 라는 Class 가 정의 되어 있으며, 이 Class 에서 CPU 사용율을 얻어 올 수 있도록 만들어 져 있습니다. 이미 많은 부분들에서 이 방법들을 사용하고 있긴 합니다만, MinGW 에서는 제대로 동작하거나 빌드 되지 않아서 이 부분을 다시 재정의 하여 만들었습니다. CPU 가 평균 특정 Percentage 이하로 내려 가야 동작하게 한다거나, 반대로 특정 사용율 이상 일때 뭔가 하도록 하는 방법을 찾으신다면 첨부된 소스를 참조 해 보시기 바랍니다. 별거 아닌 소스 이기 때문에 별다른 정보를 기재 하지는 않겠습니다. * Open..