PSD 엔코더/디코더를 만드는데 "Normal"블렌딩 모드..

2D, 3D, 다각형, 픽셀 등 게임의 그래픽 프로그래밍에 관한 포럼입니다.

Moderator: 류광

Locked
laksoo
Posts: 69
Joined: 2004-06-22 02:09
Contact:

PSD 엔코더/디코더를 만드는데 "Normal"블렌딩 모드..

Post by laksoo »

PSD 파일타입의 엔코더/디코더를 만들고 있습니다.

친절&상세한 구현 안내서까지는 못 구했습니다만,
paintlib 2.6.1 이라는 오픈소스 라이브러리에 PSD 디코딩 기능이 들어있고,
photoshop sdk를 구하면 그 속에 Format Spec은 들어 있거든요.

디코딩은 충분히 될 것 같고, 엔코딩도 디코딩 성공한 뒤 거꾸로 하면 될텐데요.. (압축방식이 단순한 RLE라 어렵지 않을 듯 합니다.)

Normal블렌딩모드만 지원해 주면, 제 엔진의 텍스쳐를 생성해주는 툴에서 PSD에 투명레이어를 만들어 저장해 주는 기능을 만들 수 있다.. 이런점에 착안한거죠. (때에따라 그래픽디자이너에게 편리하죠.)

그런데, 시작부터 난관이... 일단 레이어의 픽셀들은 다 읽었습니다만..
Normal블렌딩 모드가 제일 기본적으로 되어야하는데, 프로그램상에 그대로 재현해 내는것이 쉽지가 않네요.

PSD에서 읽어들인 컬러값을 보면 SRCALPHA 모드 느낌이 듭니다.
(예를들어 흐릿한 빨간색 부분도 전부 100% 새빨간 색으로 되어 있는 등...)

그런데 문제는 RGB컬러중, R/G는 SRCALPHA 공식에 의해 블렌딩하면 중간색 부분이 너무 어둡게 표현이 되어버리더군요. (마치 알파값이 너무 높은 경우처럼)
B 컬러는 SRCALPHA 공식으로 블렌딩하면 포토샵에서 보이는 것하고 똑같이 됩니다.

일단 제대로 디코딩이나 해 줘야, 툴에서 엔코딩한 내용을 포토샵에서 읽었을때에 제대로 보일텐데요..


혹시 단서가 있으신 분 있으면 답변좀 주세요~.

*덧붙임: 포맷땜에 애먹을때가 진짜 제일 짜증나죠.. 구현만 되면 100% 소스 공개 예정..
Locked