unity3d - 我们可以在着色器中编写自己的采样和包装逻辑吗?可能是什么问题?
问题描述
我想在着色器中做一些想法,这些想法需要我制作一个奇怪的纹理拓扑,例如纹理图集打包。不能用普通的包边方式包边,UV接缝边缘会出现毛刺或渗色
所以我想,如果我只是使用tex2D()
或tex2Dlod()
用于点过滤的纹理查找,然后在着色器本身中重写所有采样和混合逻辑,用自定义包装器查找许多点并将它们与着色器代码混合
是否有可能,这种方法可能存在什么问题或缺点?
解决方案
是的,这是可能的并且很常见。您需要在项目中设置纹理资产本身的过滤器和/或环绕模式。(如果使用着色器图,您可以选择在着色器本身内指定自定义样本状态)。您当然可以修改传递给着色器的 UV 坐标,并使用这些修改后的值对纹理进行采样。
推荐阅读
- python - 如何摆脱python中除了字母之外的所有东西?
- c# - 如何一直提示输入直到它有效?
- python - Plotly Express 3D 向量
- go - 使用系统调用在 Go 中的 Chroot 给出错误
- reactjs - 任何不在 React 组件中使用 Proptypes 的理由
- javascript - 提交表单时出错:无法使用 NodeJS + ExpressJS 发布
- javascript - 在 jquery 中调用 react this.function
- python - 如何访问 H2O for python 中的混淆矩阵元素?
- python - 傅里叶变换 傅里叶逆变换 python
- security - 使用自签名证书连接到后端的安全前端