2016-08-15 10 views
1

キューブにテクスチャを表示しています(SceneKit - Map cube texture to boxを参照してください) 今はうまくいきますが、ここで概説したいくつかのキューブフェイス)キューブ内にある:SceneKit - 罫線のステッチングラインを削除する

enter image description here

私はそれを取り除くことができますどのように任意のアイデアは?だから、入力中に、いくつかの不連続性があるenter image description here

のように入力テクスチャが見えます。私は、このテクスチャをキューブにマッピングする以外のことをしないカスタムのSceneKitジオメトリを使用しています。仮定(エッジが消えるようにするため、私は少し立方ないように立方体の形状を変更し、より enter image description here

ようにしました、ハック解決策としてhttps://stackoverflow.com/a/38961244/2054629

答えて

0

:あなたは、上記の問題に関連するコードを見つけることができますカメラは内部にあります)。結果としてテクスチャがちょっと切り取られますが、これははるかに目立ちません。

として、私は3×8の頂点の位置を定義するために使用

:私はそこにそれを残しておきます

let X = 0 
let Y = 8 
let Z = 16 
func killEdgeStitching(positions: [SCNVector3], axis: Int) -> [SCNVector3] { 
    var res = [SCNVector3]() 
    let delta = Float(0.99) 
    for pos in positions { 
     var newPosition = SCNVector3(x: pos.x, y: pos.y, z: pos.z) 
     switch axis { 
     case X: 
      newPosition.x *= delta 
     case Y: 
      newPosition.y *= delta 
     default: 
      newPosition.z *= delta 
     } 
     res.append(newPosition) 
    } 
    return res 
} 
let positions = killEdgeStitching(positions: _positions, axis: X) + 
    killEdgeStitching(positions: _positions, axis: Y) + 
    killEdgeStitching(positions: _positions, axis: Z) 

:によって

let _positions = [ 
    SCNVector3(x:-halfSide, y:-halfSide, z: halfSide), 
    SCNVector3(x: halfSide, y:-halfSide, z: halfSide), 
    SCNVector3(x:-halfSide, y:-halfSide, z: -halfSide), 
    SCNVector3(x: halfSide, y:-halfSide, z: -halfSide), 
    SCNVector3(x:-halfSide, y: halfSide, z: halfSide), 
    SCNVector3(x: halfSide, y: halfSide, z: halfSide), 
    SCNVector3(x:-halfSide, y: halfSide, z: -halfSide), 
    SCNVector3(x: halfSide, y: halfSide, z: -halfSide), 
] 
let positions = _positions + _positions + _positions 

、今、私は最後の行を交換していますしかし、うまくいけば誰かが本当の答えを持っているでしょう!