목차
5월 1주 OpenGL과 Cg 연동 Framework 구성
5월 2주 Bitmap Image 관련 Library 제작
5월 3주 Opening & Closing algorithm 구현
5월 4주 중간 발표와 Cg Shader 테스트
5월 5주 Gradient & Smoothing algorithm 구현
6월 1주 Gradient & Smoothing algorithm을 Cg로 porting & debugging
6월 2주 최종 발표, 결론과 Performance 측정(CPU & GPU)
5월 2주 Bitmap Image 관련 Library 제작
5월 3주 Opening & Closing algorithm 구현
5월 4주 중간 발표와 Cg Shader 테스트
5월 5주 Gradient & Smoothing algorithm 구현
6월 1주 Gradient & Smoothing algorithm을 Cg로 porting & debugging
6월 2주 최종 발표, 결론과 Performance 측정(CPU & GPU)
본문내용
#ifndef __SAMPLE_CG__ // incldue 중복을 방지 하기 위한 선언
#define __SAMPLE_CG__
sampler2D decalMap = sampler_state {// 입력 texture, horse.bmp
generateMipMap = false;// 밉맵을 생성하지 않음
minFilter = Nearest;// 축소 필터링 하지 않음
magFilter = Nearest;// 확대 필터링 하지 않음
};
sampler2D frameBufferMap = sampler_state {// frame buffer texture
generateMipMap = false;
minFilter = Nearest;
magFilter = Nearest;
};
sampler2D frameBufferMap2 = sampler_state {// frame buffer texture 2
generateMipMap = false;
minFilter = Nearest;
magFilter = Nearest;
};
sampler2D frameBufferMap3 = sampler_state {// frame buffer texture 3
generateMipMap = false;
minFilter = Nearest;
magFilter = Nearest;
};
float WIDTH = 256;// 이미지의 너비
float HEIGHT = 256;// 이미지의 높이
// + 형태의 연산자
void sample3x3_cross(out float4 col[5], float4 tex0, sampler2D decal)
{
// tex2D는 0~1사이의 2개의 x, y 텍스처 좌표로 부터 픽셀을 얻어오는 함수
col[0] = tex2D(decal, tex0.xy + float2(1.f/WIDTH, 0.f/HEIGHT));// x: 다음 픽셀 위치, y: 현재 픽셀 위치
col[1] = tex2D(decal, tex0.xy + float2(-1.f/WIDTH, 0.f/HEIGHT));// x: 이전 픽셀 위치, y: 현재 픽셀 위치
col[2] = tex2D(decal, tex0.xy + float2(0.f/WIDTH, 1.f/HEIGHT));// x: 현재 픽셀 위치, y: 다음 픽셀 위치
col[3] = tex2D(decal, tex0.xy + float2(0.f/WIDTH, -1.f/HEIGHT));// x: 현재 픽셀 위치, y: 이전 픽셀 위치
col[4] = tex2D(decal, tex0.xy);
}
#define __SAMPLE_CG__
sampler2D decalMap = sampler_state {// 입력 texture, horse.bmp
generateMipMap = false;// 밉맵을 생성하지 않음
minFilter = Nearest;// 축소 필터링 하지 않음
magFilter = Nearest;// 확대 필터링 하지 않음
};
sampler2D frameBufferMap = sampler_state {// frame buffer texture
generateMipMap = false;
minFilter = Nearest;
magFilter = Nearest;
};
sampler2D frameBufferMap2 = sampler_state {// frame buffer texture 2
generateMipMap = false;
minFilter = Nearest;
magFilter = Nearest;
};
sampler2D frameBufferMap3 = sampler_state {// frame buffer texture 3
generateMipMap = false;
minFilter = Nearest;
magFilter = Nearest;
};
float WIDTH = 256;// 이미지의 너비
float HEIGHT = 256;// 이미지의 높이
// + 형태의 연산자
void sample3x3_cross(out float4 col[5], float4 tex0, sampler2D decal)
{
// tex2D는 0~1사이의 2개의 x, y 텍스처 좌표로 부터 픽셀을 얻어오는 함수
col[0] = tex2D(decal, tex0.xy + float2(1.f/WIDTH, 0.f/HEIGHT));// x: 다음 픽셀 위치, y: 현재 픽셀 위치
col[1] = tex2D(decal, tex0.xy + float2(-1.f/WIDTH, 0.f/HEIGHT));// x: 이전 픽셀 위치, y: 현재 픽셀 위치
col[2] = tex2D(decal, tex0.xy + float2(0.f/WIDTH, 1.f/HEIGHT));// x: 현재 픽셀 위치, y: 다음 픽셀 위치
col[3] = tex2D(decal, tex0.xy + float2(0.f/WIDTH, -1.f/HEIGHT));// x: 현재 픽셀 위치, y: 이전 픽셀 위치
col[4] = tex2D(decal, tex0.xy);
}
소개글