2009-05-06 5 views
14

내장 자동 자동 대신 자체 사전 알고리즘을 사용하면 텍스처 밉맵의 품질이 더 좋을지 궁금합니다. Lanczos 리샘플링과 같이 느리지 만 예쁜 알고리즘을 사용할 것입니다.OpenGL 텍스처에 자신의 밉맵 생성 알고리즘을 사용하는 것이 합리적입니까?

의미가 있습니까? 현대 그래픽 카드의 경우 의 품질 향상을 얻을 수 있습니까?

+0

Unity는 밉맵 체인을 생성하기 위해'box '또는'Kaiser' 필터를 제안합니다. 확실히 합법적 인 질문입니다. –

+0

두 가지를 섞어서 사용한다고 생각합니다. 보간은 필요한 데이터보다 더 많은 데이터가 필요할 때입니다. 밉맵은 사용자가 필요로하는 것보다 적은 데이터가 필요한 경우를위한 것입니다. Lanczos는 보간 알고리즘이며, 밉맵과 아무런 관련이 없습니다. –

답변

2

시도해 볼 동기가 무엇입니까? 현재 생성 된 밉맵이 제대로 생성되지 않았습니까? (즉, 보셨습니까?) 결과가 종종 선형 (tri)으로 보간되는 것을 염두에 두십시오. 따라서 모션 사이에는 향상된 리샘플링에 대한 가파른 감소가 있습니다.

+0

글쎄, 현재 알고리즘은 매우 느릴 수 없으므로 그렇게 좋을 수는 없습니다. 밉맵을 미리 생성하고 저장하는 비용은 적지 만 그 결과가 눈에 띄지 않을 경우 가치가 있는지 여부는 알 수 없습니다. – GhassanPL

+0

지금 어떻게하고 있는지 잘 모르겠지만, 요즘에는 GPU로 생성 할 수있어 빠르고 좋은 결과를 얻을 수 있습니다. 더 중요한 것은, 당신은 틀린 해결책에 이들을보고, 또는 아마, 그 (것)들 사이 선형으로 보간하고있다. 따라서 아름답게 제작 된 핸드 리샘플링 버전은 일반적으로 보이지 않으므로 수익이 감소합니다. 실제로 유물을보고 있습니까, 아니면 순수 학문입니까? – simon

+0

은 귀하의 사업 예산에 따라 다릅니다. 자유 시간 일? 투자자가 자금을 조달 했습니까? 당신의 급여 등 ... 일할 때 일주일이 걸리면, 회사에 약 1000 $ 또는 그 이상의 비용이 들게 될 것입니다. 정말 가치가 있습니까? –

10

자신의 밉맵을 생성해야하는 충분한 이유가 있습니다. 그러나 다운 샘플링의 품질은 그 중 하나가 아닙니다.

게임 및 그래픽 프로그래머는 과거에는 모든 종류의 다운 샘플링 알고리즘을 실험 해 왔습니다. 결과적으로 매우 단순한 "평균 4 픽셀"방식이 가장 좋은 결과를 얻었습니다. 또한 더 진보 된 방법은 이론적으로 수학적으로 정확하며 밉맵에서 많은 선명도를 얻는 경향이 있습니다. 이것은 평평한 모습을 보여줍니다 (시도해보십시오!).

일부 이해할 수없는 이유는 간단한 평균 방법이 앤티 엘리 어싱과 밉맵을 뚜렷하게 유지하는 것 사이에서 가장 유리한 것으로 보입니다.

그러나 감마 보정을 사용하여 밉맵을 계산할 수 있습니다. OpenGL은 자체적으로이 작업을 수행하지 않습니다. 이는 특히 어두운 텍스처의 경우 시각적으로 큰 차이를 만들 수 있습니다.

그렇게하는 것은 간단합니다. 대신 다음과 같이 함께 네 개의 값을 평균의 :

float average (float a, float b, float c, float d) 
{ 
    return (a+b+c+d)/4 
} 

는이 작업을 수행합니다 :

float GammaCorrectedAverage (float a, float b, float c, float d) 
{ 
    // assume a gamma of 2.0 In this case we can just square 
    // the components. 
    return sqrt ((a*a+b*b+c*c+d*d)/4) 
} 

이 코드는 색상 구성 요소에 따라 다르다 1.

+12

실제로 "평균 4 픽셀"은 밉맵을 만드는 가장 좋은 방법은 아닙니다. http://www.number-none.com/product/Mipmapping,%20Part%201/index.html –

2

0의 범위로 정규화 가정 귀하가 표시하는 자산의 종류. Lanczos 필터는 이상적인 저역 통과 필터에 더 가까워지고 밉맵을 나란히 비교하면 눈에 띄게됩니다. 대부분의 사람들은 앨리어싱을 선명도로 착각 할 것입니다. 다시 말해서 자산에 고주파수가 포함되어 있는지 여부에 따라 달라집니다. 상자 필터가 좋은 옵션이 아닌 경우를 분명히 보았습니다. 그러나 밉맵이 선형 적으로 보간되기 때문에 이득이 눈에 띄지 않을 수 있습니다. 언급 할 또 다른 사항이 있습니다 - 대부분의 사람들은 상자 필터를 사용하여 출력을 다음 단계의 입력으로 전달합니다.이 방법으로 정밀도와 시각적 에너지를 모두 잃을 수 있습니다 (감마가 도움이되지만). 만약 당신이 임의의 필터를 사용하는 코드를 생각해 낼 수 있다면 (대다수는 두 개의 패스로 구분할 수 있음을 명심하십시오) 일반적으로 필터 커널 자체를 확장하고 기본 텍스처에서 밉맵 레벨을 생성합니다. 이는 좋은 일입니다.

+0

고해상도 텍스처를 모든 밉맵의 소스로 유지하는 것이 좋습니다. 한 가지를 추가하기 만하면됩니다. lanczos와 cie는 큰 커널을 사용하여 링잉을 추가합니다. 여기에서주의를 기울여야한다. –

1

이 질문에 덧붙여, Lanczos 필터링과 같은 최상의 다운 스케일링 품질을 얻으려는 시도가 아닌 일부 완전히 다른 밉 매핑이 특정 텍스처에 좋은 영향을주는 것으로 나타났습니다.

예를 들어 고주파 정보를 나타내는 일부 텍스처의 경우 각 반복에 대해 고려중인 4 개의 픽셀 중 하나의 임의의 픽셀 만 사용하는 알고리즘을 사용하려고했습니다. 결과는 텍스처와 전달 대상에 크게 좌우되지만, 일부에서는 큰 효과가 있다는 것을 알았습니다. 적어도 땅의 질감을 위해.

내가 시도한 또 다른 하나는 대조를 유지하기 위해 4 픽셀 중 가장 벗어난 것입니다. 사용량은 적지 만 존재합니다.

이와 같이 텍스처 당 밉 매핑 알고리즘을 선택하는 옵션을 구현했습니다.

편집 : 실제로 차이점에 대한 몇 가지 예를 제공 할 수 있다고 생각했습니다. 여기서 가장 왼쪽의 그림은 표준 평균 밉 매핑에있는 지상에 잔디 질감의 조각, 그리고 맨 오른쪽은 무작위 밉 매핑과 함께 보낸 :

내가 시청자가 얼마나 많은 "명백한 세부 사항을"감사 할 수 있기를 바랍니다 Average mipmapping, trilinear filtering Random mipmapping, trilinear filtering

평균 밉맵에서 잃어버린, 그리고 그것이 얼마나 부드럽습니까 이런 종류의 질감을 찾습니다.

Average mipmapping, 4× anisotropic filteringRandom mipmapping, 4× anisotropic filtering

이방성 필터링 차이 덜 현저하게되지만 같습니다

또한 참조를 위해 여기 × 이방성 필터링 온 4와 동일한 샘플 (상기 인 트라이 - 선형)이다 여전히 거기에.

+0

좋은 아이디어. '하나의 무작위'는 '가장 가까운 것'과 같지만 무작위로 앨리어스를 제거하려고합니다. 'nearest '는 항상 더 정확한 결과를 제공합니다. –

관련 문제