#unity3d #shader #hlsl
#unity-game-engine #шейдер #hlsl
Вопрос:
Я пытаюсь реализовать шейдер для чертежей в трех видах для простой геометрии и протестировать этот шейдер, простой как:
float doCos = dot(viewDirection, normalDirection);
float4 texColor;
//2. need board
bool isBackSide = doCos < 0;
if(isBackSide) {
//_Dotted is a 2d texture the board is black dot line
texColor = tex2D(_Dotted, i.tex.xy * _Dotted_ST.xy _Dotted_ST.zw);
} else {
//_Dotted is a 2d texture the board is black entity line
texColor = tex2D(_Entity, i.tex.xy * _Entity_ST.xy _Entity_ST.zw);
}
//ignore some color
if(texColor.x > 0.5f) {
discard;
}
return texColor;
Есть проблема, пунктирная линия становится очевидной, а затем линией объекта, когда передняя плоскость становится крутой. также я добавляю линию обода, но она не точечная, поэтому я игнорирую ее.
чтобы внести ясность, я использую два вопроса:
1. как модифицировать этот шейдер для решения проблемы с пунктирными линиями?
2. Существует ли профессиональный шейдер для трехмерных рисунков?(пока не найден)
Комментарии:
1. Что такое «шейдер для трехмерных рисунков»?
2. @NicolBolas, визуализируй линию fortend (мы можем видеть с камеры) с помощью строки объекта. что касается внутренней линии (на самом деле мы не видим), рендеринг с пунктирной линией. это объяснение может быть понятным ~
3. перепишите это объяснение в свой вопрос и сделайте его немного понятнее. что такое fortend?