2017-08-20 5 views
12

J'ajoute plusieurs objets SCNShape transparents à une scène ARSCNSceneView.Puis-je regrouper plusieurs objets SCNShape transparents?

  • Ces formes sont basées sur l'entrée de l'utilisateur et devraient se chevaucher.
  • Elles sont toutes formes plates faites avec UIBezierPath sur le même plan
  • Formes doit être transparente, de sorte que l'utilisateur peut voir l'entrée de la caméra derrière

Le problème est que les formes qui se chevauchent sont très visibles, et Je voudrais qu'il montre comme une seule forme - l'union de toutes les formes.

approches: Failed

  • le plaçant sous un même nœud et l'utilisation d'opacité des parents.
  • Fusion des chemins UIBezier.
  • Modes de fusion
  • modes de transparence
  • dessin en utilisant des triangles primitifs au lieu de UIBezierPath

Wanted vs current results

+1

Pas un doublon exact, mais plutôt proche. Il y a une référence d'article ici qui pourrait vous aider, vous. https://stackoverflow.com/questions/19178360/creating-a-union-of-2-bezier-paths –

Répondre

3

Vous pouvez jeter un oeil à VectorBoolean qui est une bibliothèque rapide pour faire face à des opérations booléennes comme le union que vous recherchez. Je ne l'ai pas essayé moi-même mais j'ai entendu de bonnes choses à ce sujet.

+1

Génial. L'union fonctionne comme prévu et c'est très facile à utiliser. Vous appelez simplement 'path.fb_union (other)' pour les fusionner sans chevauchement. Contrairement au comportement 'path.append (other)' natif. Je vais tirer cette demande de repo pour ajouter podspec. – avishic

+1

Jusqu'à ce que la demande de tirage soit approuvée, vous pouvez utiliser le pod de ma fourchette 'pod 'VectorBoolean',: git => 'https: // github.com/avishic/Swift-VectorBoolean.git'' – avishic

+0

Vous avez des problèmes avec VectorBoolean - on Dans certains cas, il supprime tout le chemin/créer des trous indésirables dans l'union. – avishic