[OpenGL] 2D QUAD 렌더링시 이미지 가장자리 처리 문제

- 현상: 가장자리가 어둡게(혹은 밝게) 렌더링된다
- 원인: 선형(linear) 보간시 이미지 영역 밖의 텍셀이 혼입되어 나타나는 현상
- 해결: 이미지를 상하좌우로 nudge처리한 다음 텍스쳐를 생성한다
- 각 방향으로 nudge시 알파채널은 건들지않아야 이미지 외형에 변화가 없다

by 플라밍고 | 2012/05/17 14:55 | 트랙백 | 덧글(0)

[OpenGL] 텍스쳐가 없는 텍스쳐 유닛 문제 (fixed pipeline)


- 현상: 해당 텍스쳐 유닛이 전혀 동작하지 않는다
- 해결: 텍스쳐가 필요없어도 아무 텍스쳐나 바인드한다
- iOS는 괜찮으나 Windows에서 문제 발생
- (예제)
// ...
glActiveTexture(GL_TEXTURE1);
glClientActiveTexture(GL_TEXTURE1);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glEnable(GL_TEXTURE_2D);
#ifdef WINDOWS
glBindTexture(GL_TEXTURE_2D, dummy_texture);
#endif//WINDOWS
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE);
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_ADD);
glTexEnvi(GL_TEXTURE_ENV, GL_SRC0_RGB, GL_PREVIOUS);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR);
glTexEnvi(GL_TEXTURE_ENV, GL_SRC1_RGB, GL_PRIMARY_COLOR);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_COLOR);
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_REPLACE);
glTexEnvi(GL_TEXTURE_ENV, GL_SRC0_ALPHA, GL_PREVIOUS);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA, GL_SRC_ALPHA);
// ...

by 플라밍고 | 2012/05/17 14:51 | 트랙백 | 덧글(0)

[DB] MongoDB Java Driver 버그 아닌 버그

C 표현식
(
(a < 0 || a > 100) &&
(b < 0 || b > 100) &&
(c == 0)
)

MongoDB 표현식
{
{ $or: [ { a: { $lt: 0 } }, { a: { $gt: 100 } } ] },
{ $or: [ { b: { $lt: 0 } }, { b: { $gt: 100 } } ] },
{ c: 0 },
}

BasicDBObject query = new BasicDBObject();
query.append("$or", mongo_array(new BasicDBObject("a", new BasicDBObject("$lt", 0)), new BasicDBObject("a", new BasicDBObject("$gt", 100))));
query.append("$or", mongo_array(new BasicDBObject("b", new BasicDBObject("$lt", 0)), new BasicDBObject("b", new BasicDBObject("$gt", 100))));
query.append("c", 0);
Java Driver로 구현시 위 코드와 같이
앞쪽에 있는 것을 key로하는 해시맵에 조건식을 넣게 되는데 (순서대로 "$or", "$or", "c")
문제는 같은 "$or" key가 발생하여 뒤쪽 "$or"식이 앞쪽 "$or"식을 덮어쓰게 된다- LOL
이런 경우 문제가 발생해도 실제로 쿼리식을 뽑아보지않고는 원인을 찾기가 까다롭게 된다
모든 식들을 $and로 묶어서 넣거나 값의 범위가 적다면 $in 문법 등으로 피해가자

by 플라밍고 | 2011/10/17 22:08 | 트랙백 | 덧글(0)

[3D] 소프트웨어 래스터라이저 3ds 모델 렌더링 실험


- 성능 테스트겸 모델 렌더링 실험 -

모델 찾기가 정말 힘듬.
그리고 알파 재질 렌더링때 프래그먼트 겹침현상 어떡할겨..


(프래그먼트 겹침 해결 - 자동차 창문의 반투명 삼각형들의 겹침선이 나타나지 않음!)

by 플라밍고 | 2011/01/21 18:15 | 트랙백 | 덧글(0)

[gcc] declaration does not declare anything

아이폰으로 포팅하려고 C/C++ 프로젝트를 무심코 임포트해서 빌드하면 이런 경고와 함께 많은 오류가 나는 경우가 있다.
declaration does not declare anything 정의부가 아무것도 정의하지 않았다
..는 경고로 시작해 수백수천개의 오류가 나는 이 현상은
대부분 anonymous struct 구조를 사용할 경우 생긴다고 보는 것이 맞을 것이다.
(즉 구조체만 있고 변수 혹은 멤버명이 없는 경우)


struct foo
{
int a;
struct
{
int b;
int c;
};
int d;
} bar;

해결 방법은 gcc에게 C/C++ 컴파일 표준 정책을 gnu99로 바꿔주거나 기본값으로 컴파일하면 된다.
Xcode의 경우 빌드 옵션 | GCC 4.2 - Language | C Language Dialect 부분을 -std=gnu99로 바꿔주면 된다.

by 플라밍고 | 2010/09/15 14:56 | 트랙백 | 덧글(2)

<< 이전 페이지     다음 페이지 >>