2017-07-28 74 views
1

從r67升級到r86後,我們的足球已不再性感。過去有沒有人有類似的問題?版本升級後球體上的紋理模糊

在r86版本中,用於很好地渲染球體的代碼會混淆紋理(以及某些燈光,但我可以忍受)。

創建該領域的部分:

const material = new THREE.MeshPhongMaterial({ map: texture, transparent: false }); 
material.alphaTest = 0.5; 
const geometry = new THREE.SphereGeometry(radius, res, res); 
const mesh = new THREE.Mesh(geometry, material); 

enter image description here

Fiddle using r86

+0

它看起來像紫外線已經改變(請注意文本在r86版本中是如何變形的)。一旦UV被分類,看看不同的最小過濾器/磁過濾器可用:https://threejs.org/docs/#api/constants/Textures – TheJim01

+0

@TheJim01添加了minFilter,它的工作原理。 https://jsfiddle.net/sL3wkuka/2/謝謝!你可以發表你的評論作爲答案嗎? –

回答

3

在我的評論中,我建議檢查UVs。我的建議是嘗試使用不同的最小值/最大值濾波器值(http://threejs.org/docs/#api/constants/Textures)來校正圖像質量,而不是映射其自身的紋理。

我沒注意到的是你的紋理已經是球形了。標準線性濾波器線性地映射紋理。線性過濾器的權重/平均值導致映射變得朝頂部(和底部,儘管它不明顯)壓縮。

設置texture.minFilter = THREE.NearestFilter;放棄紋理座標的加權/平均值,而是映射到最接近的像素,因爲您的球形紋理是完美的。