Vertex shaders receive the attribute inputs from the vertex rendering and converts each incoming vertex into a single outgoing vertex based on an arbitrary, user-defined program.
да есть много способов, на уровне вертексного шейдереа например когда сначала рисуется как есть, затем в след.пассе ты скейлишь на некий процент мешь и рисуешь его поверх основного но с другими флагами глубины чтоб он был виден только поверх 1го...