Pixel Bender에 대한 경험이 없으며 쉐이딩 언어가 저에게 횡설수설하는 것처럼 보입니다. 그래서 누군가가 다음 as3 코드를 Pixel Bender 필터/쉐이더로 사용하도록 다시 작성하는 데 도움이 될지 궁금합니다. 작동 방식은 16777215 색상을 팔레트 배열 (가장 밝은 색상부터 가장 어두운 색상까지)에서 정의한 4 가지 색상 톤으로 변환하고 싶습니다. 결과는 만족 스럽지만 성능이 좋지 않아 필터를 만들고 싶습니다. 여기 코드는 다음과 같습니다 (내 라이브러리에서 이미지 인 sbitmap)픽셀 벤더 4 색 쉐이더
var display:Bitmap = new Bitmap(new sbitmap());
var palette:Vector.<uint> = new <uint>[0x485B61, 0x4B8E74, 0xA6E76D, 0xD1FE85];
var data:BitmapData = display.bitmapData;
addChild(display);
const inc:int = int(0xFFFFFF/4)+1;
for(var i:int = 0; i < data.height; i++)
{
for(var j:int = 0; j < data.width; j++)
{
var color:uint = data.getPixel(j, i);
var pIndex:int = 0;
for(var k:int = 0; k < 0xFFFFFF; k += inc)
{
if(color >= k && color < k + inc)
{
data.setPixel(j, i, palette[pIndex]);
break;
}
pIndex++;
}
}
}
여기에 내가 가진 결과입니다 : http://fc05.deviantart.net/fs70/f/2012/243/c/6/screen_shot_2012_08_30_at_1_19_10_pm_by_johnjensen-d5d1ms3.png
실제로 16 진수 값을 rgb로 변환 해 주셔서 감사합니다. 잊어 버렸습니다! 계속 오류가 발생합니다. (줄 15) : '<': 구문 오류 구문 분석 오류입니다. 줄 15는 k2가 정의 된 줄이고 k1에서는 이상한 오류가 발생하지 않습니다. –
나는 그것을 작동시켰다. 감사! :) –