히농의 잡합다식

오랫만에 이미지 프로그래밍 본문

프로그래밍

오랫만에 이미지 프로그래밍

히노히에 2019. 9. 19. 00:03

회사에서 문서 만들다가 뭔가 맘에드는 동그라미/엑스 그림이 없길래

직접 그리기로 결정했다ㅋㅋㅋ

그리고 그 결과..

입력으로 그린 그림

 

출력물

보다시피 약간의 3D 비스무리한 효과도 주면서

겉에 흰색깔 테두리로 감싸주는..그런 모습이다.

 

회사에서 일할땐 거의 2~3시간동간 튜닝했었는데

막상 집에 와서는 한 3~40분만에 짜버림ㅋㅋㅋ

 

이미지 읽고 쓰는건 stb_image.h 를 사용했다. https://github.com/nothings/stb 여기 이친구인데.. 내 기억으론 상업적인 이용이 아닌 이상 그냥 막 갔다써도 되는걸로 알고있음.. 토이프로젝트만 운용하는 나같은 친구에겐 딱임...

 

코드는 파일로 첨부한다. 첨부 되려나..?

image_boom_main.cpp
0.00MB

 

방식은 간단하다. 쉽게 말해 radius의 크기를 가진 구체가 모든 픽셀 돌면서 radius범위 안에 있는 모든 색있는 녀석들 정보를 다 끍어모은 뒤 그 평균을 칠한 것이다.

색을 칠하는 픽셀과, input색상까지의 위치 차이의 평균을 잘 구한 뒤, 그 거리를 radius로 나누면

구체의 높이(?) 가 계산될거고, 이를 이용하면 해당 픽셀의 normal vector가 결정된다.

이거랑 임의로 설정한 빛의 방향이랑 dot product 해서 색을 결정.

 

해당 코드에서는 음수인 경우도 어느정도 허용해줬는데, 이렇게 되면 약간 그림자진 효과를 줄 수도 있다는 장점이 있지만, 어두운 색상에서는 그 효과가 잘 안보인다는 단점이 있을 것이다...

이런건 튜닝의 영역이니까 알아서 잘 해보슈.ㅋㅋㅋ

'프로그래밍' 카테고리의 다른 글

퀵소트 저격하기  (1) 2020.09.17
여러 문자열을 허용하는 Suffix Array class  (2) 2020.01.01
[난이도 : F**K] 공약수  (0) 2014.07.13
[난이도 : Easy] 수열  (0) 2012.08.06
[난이도 : ???] vowel.  (0) 2012.08.06
Comments