OpenGL Cg 셰이더로 구현한 실시간 이미지 프로세싱

이미지
준비중입니다.
※ 미리보기 이미지는 최대 20페이지까지만 지원합니다.
  • 분야
  • 등록일
  • 페이지/형식
  • 구매가격
  • 적립금
자료 다운로드  네이버 로그인
소개글
OpenGL Cg 셰이더로 구현한 실시간 이미지 프로세싱에 대한 자료입니다.
목차
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)
본문내용
#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);
}
참고문헌
Cg 셰이더 프로그래밍
Digital Image Processing