基本上,我正在尝试使用OpenGL进行分层系统,必须支持层次结构(层可以有子层等)。当图层具有父图层时,必须在绘制父图层时将其剪裁到其父图层。当所有图层都是矩形时,它是相当直接的,我可以计算出交叉点并裁剪出越界位。但是,每个图层也可以有一个变换矩阵,如果我们在另一个图层内变换一个图层,它将不再是矩形,这意味着我不能只计算出交叉点。
下图显示了问题(父母是粉红色,而孩子是浅绿色):
对于上面的示例,glScissor
调用足以设置矩形边界框,但这不会做,因为父图层也可以变换(因此它将不再是矩形)。此外,如果转换父图层,则在渲染子图像之前,子图形的变换矩阵将与父图层相乘,因此即使转换了子图形,也会产生子图像在父图像内的错觉。
答案 0 :(得分:0)
一些建议: