我对图形编程很陌生,我正在学习opengl。我设法做了一个非常简单的渲染器,在那里我可以导入模型,显示他们的纹理与所有照明。我的目标是制作一个简单的绘画软件,像物质画家或Mari,但要简单得多,我不知道它们是如何工作的?我在谷歌上搜索,但找不到一个好答案。
谢谢。
发布于 2020-08-10 12:54:50
我们最近有一些相关的问题,所以你可能会发现它们很有用:
我无法告诉您命名的应用程序是如何实现的,因为我没有访问代码的权限,但是可以按如下方式在3d模型上进行绘制:
当你点击“油漆”按钮时,你会从相机位置投出一条光线到你的3d场景中。对于透视投影,方向取决于鼠标的屏幕位置。您可以查看我对这个问题的回答,以了解这是如何完成的。
现在,对光线和模型执行碰撞检查,以找到受影响的三角形/三角形和顶点。计算光线击中受影响三角形的重心坐标。使用它们来插值交点的纹理坐标。从模型数据中,您应该知道在目标位置使用了哪种纹理。
现在你知道你想在模特的纹理里画什么了。如何继续取决于你想要画什么。如果你只想画一个像素,你必须覆盖纹理的像素在这个位置。您可以在CPU或GPU上使用呈现管道来完成此操作。
如果您还不理解我提到的一些内容,请阅读我提供的链接并继续学习OpenGL。一旦你知道渲染管道,并且习惯于使用纹理,事情就会变得更清晰。如果有什么事情在那之后还不清楚,那就随便问吧。
https://computergraphics.stackexchange.com/questions/10096
复制相似问题