2016-05-05 1 views
2

C'est très difficile à décrire, mais je pense que cela devrait être possible.Arrêter l'affichage à travers l'objet malgré le matériau transparent?

Essentiellement, c'est là où je suis à:

enter image description here

Depuis le matériau de la Terre a Normales extérieur, son propre matériel n'apparaît pas sur l'autre côté du globe. Cependant, en raison de la transparence du matériel, je vois les marqueurs qui existent de l'autre côté du globe.

Comment puis-je empêcher l'affichage de certaines choses à travers le matériau? Le fond est la skybox et c'est la seule chose que je voudrais montrer à travers la transparence.

Toute aide ou conseil est apprécié.

+0

vous voulez dire les gratte-ciel verts non? En effet, vous serez en mesure de voir ceux de l'autre côté ... – Fattie

+0

Juste une sorte de pointeur pour quiconque googler ici. Dans certains cas, vous avez besoin de 'TransparencySortMode.Orthographic' pour résoudre les problèmes de la journée. – Fattie

Répondre

2

il est un peu difficile à faire:

la seule façon est:

tour OFF chaque gratte-ciel vert, quand il est au « retour ».

Disons que votre monde est simplement centré sur 000

Dans ce cas, si vous pensez à ce sujet est cette simple ...

Si z>0f, alors vous voulez le gratte-ciel vert pour être invisible . Si c'est z<0f, vous voulez qu'il apparaisse normalement.

Puisqu'il s'agit de Unity, vous devez travailler comme un agent. Donc en fait c'est aussi simple. Faire un script (pseudocode)

Class HideMeIfAwayFromCamera 
{ 
Update() 
{ 
if (z > 0f) renderer.enabled = true; 
else renderer.enabled = false; 
} 
} 

C'est probablement votre solution la plus simple et la meilleure ici. En tout cas, j'essaierais ça en premier. Écoutons comment cela fonctionne pour vous. Envisagez d'essayer le point marche/arrêt un peu en avant ou en arrière du demi-plan.

Notez qu'une autre approche est. Vous avez besoin d'utiliser un shader découpe; utiliser une couche différente pour les gratte-ciels; et utilisez encore une autre couche pour tous les gratte-ciel dont la base est au-delà de l'horizon; De cette façon, vous pouvez laisser apparaître les «sommets» de tous les gratte-ciel qui sont «juste derrière» l'horizon mais cachent les bases. Cela semble vraiment trop compliqué. Je pense que le meilleur résultat sera juste d'éteindre les arrière, comme indiqué ci-dessus.

(Notez aussi que ce n'est pas « physique » Si le monde est transparent:... Vous devriez être en mesure de voir les gratte-ciel à l'arrière donc vous devriez essayer certaines choses pour voir ce qui se sent bien)

+0

J'ai pensé à cette méthode, mais je me suis arrêté et j'ai décidé de demander d'abord ici. Ma plus grande préoccupation concerne le nombre d'entre eux. Il y en a environ 1000. Est-ce que quelque chose comme ça serait intensif pour fonctionner dans Update? –

+0

Non non. Merci d'avoir réaffirmé cette solution. Je l'ai juste essayé et ça a bien marché. Mais je suis curieux de connaître l'autre méthode de shaders. Avez-vous une référence pour un "shader cutout" que je pourrais regarder comme une alternative. –

+0

Marqué comme réponse de toute façon. –