refpages는 "지정된 텍스처 좌표에 가장 가까운 네 개의 텍스처 요소의 가중 평균을 반환합니다."라고 말합니다. 얼마나 정확하게 가중치를 부여합니까? 그리고 3D 텍스쳐는 보간 (interpolation)이나 그 이상을 위해서 4 텍셀만을 사용합니까? 2D 텍스처에GL_LINEAR은 정확히 어떤 알고리즘을 사용합니까?
3
A
답변
1
는 바이 리니어 보간 그래서 3X 보간법 수단 사용한 시료 4이다. 가중치는 목표 텍셀의 4 개 이웃에 대한 표준화 된 거리입니다.
(s0,t0)=(0.20,0.30)
(s0,t1)=(0.20,0.35)
(s1,t0)=(0.25,0.30)
(s1,t1)=(0.25,0.35)
가중치는 다음과 같습니다 :
ws = (s-s0)/(s1-s0) = 0.2
wt = (t-t0)/(t1-t0) = 0.4
그래서 선형 보간의 textels에서이
그래서 예를 들어, 당신은
(s,t)=(0.21,0.32)
에서 텍셀하지만 질감 가까운 텍셀 좌표를 가지고 싶어 s
방향
c0 = texture(s0,t0) + (texture(s1,t0)-texture(s0,t0))*ws
c1 = texture(s0,t1) + (texture(s1,t1)-texture(s0,t1))*ws
최종적 t
방향 363,210 : s,t
에서 texture(s,t)
복귀 텍셀 색이 정확한 텍셀에 대응하고 c
좌표 동안
c = c0 + (c1-c0)*wt
최종 컬러 보간 텍셀이다.
현실에서는 s,t
좌표에 텍셀 단위로 변환하는 텍스처 해상도 (xs,ys
)가 곱 해집니다. 그 후 s-s0
및 t-t0
은 이미 정규화되어 있으므로 s1-s0
및 t1-t0
으로 나누지 않아도됩니다. 부스는 1과 같습니다. 그래서 :
s=s*xs; s0=floor(s); s1=s0+1; ws=s-s0;
t=t*ys; t0=floor(t); t1=t0+1; wt=t-t0;
c0 = texture(s0,t0) + (texture(s1,t0)-texture(s0,t0))*ws;
c1 = texture(s0,t1) + (texture(s1,t1)-texture(s0,t1))*ws;
c = c0 + (c1-c0)*wt;
내가 전에 3D 텍스처을 사용한 적이 있지만,이 경우에 8 textels를 사용하고이 트라이 선형 보간법 배 이중 선형 보간법 단순히이 가까운 질감을 호출되고 바이 리니어 보간 각을 계산하고 단지
u=u*zs; u0=floor(u); u1=u0+1; wu=u-u0;
c = cu0 + (cu1-cu0)*wu;
그럼
u
에 기초하여 선형 보간에 의해 최종 텍셀 동일한 방법으로 좌표 산출
zs
텍스처의 카운트 53,691,363,210
, cu0
은 바이 리니어 u0
에서 텍스쳐 보간 및 u1
cu1
에서의 결과이다. 이 같은 원칙이 ...
모든 좌표
0.5 텍셀에 의해 offseted되었을 수 있으며 해상도 곱셈이 클램프 설정에 따라xs-1
대신
xs
수행 할 수 있습니다 ...
밉맵에도 사용된다
외부 관찰자로서, 나는 그것이 단지 2D 선형 보간이라고 추측 할 것이다. –
@OliverCharlesworth 쌍 선형입니다 ... – Spektre