用MeshDepthMaterial绘制一个透明纹理
Threejs - Draw a transparent texture with MeshDepthMaterial
我想在我制作的像素图上添加景深效果。
为此我需要一个带有深度信息的纹理。所以我使用MeshDepthMaterial在平面上渲染纹理,但我得到的只是一个灰色矩形,它完全忽略了纹理中的alpha数据(只有1或0,中间没有)。
当然我用的是
depthMaterial.transparent = true;
depthMaterial.alphaTest = 0.5;
depthMaterial.needsUpdate = true; //just to be sure
只是为了你的兴趣,这是我的像素和如何渲染:https://i.stack.imgur.com/udCwL.jpg
MeshDepthMaterial
根本不读取表面纹理。
相反,你需要重写'depth'
ShaderChunk的值,以包括UV和alpha可测试的纹理,或者添加额外的ShaderMaterial
来完成自己的工作。根据应用程序的总体需求,一种方法可能比另一种方法更好。如果没有非纹理对象需要投射阴影,前者将是最简单的维护。如果没有,你需要做更多的工作来管理哪个渲染目标得到什么以及如何得到。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- jQuery:循环一个具有不同超时值的循环
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 从javascript创建一个列表
- 将多个重叠的透明图像保存为一个图像
- 制作一个完全透明的文本区域
- 制作一个渲染器's的背景是透明的,但不是形状three.js
- 使一组元素透明,但一个除外
- 如何将部分透明的图像放在 html 中的另一个图像上方
- 在整个谷歌地图上放置透明的覆盖(就像一个模态覆盖)
- 我怎么能让一个粘性导航条在英雄的底部看起来透明,然后再固定在顶部
- 如何将一个元素的背景颜色与两个半透明元素的背景颜色相匹配
- 用MeshDepthMaterial绘制一个透明纹理
- html2canvas插件生成一个透明的图像
- 创建一个透明的HTML光标
- 如何创建一个半透明的弹出框
- 制作一个透明的播放按钮图标,就像airbnb网站上的一样
- 如何使引导导航栏背景有一个透明的淡出到网页
- 将一个透明图像叠加到另一个透明图像上
- 我怎么知道如果我点击一个网页上的png透明或不透明的部分