my-room-in-3d中的电脑,电视,桌面光带发光原理

1. my-room-in-3d中的电脑,电视,桌面光带发光原理

最近在github中,看到了这样的一个项目;
项目地址

我看到的时候,蛮好奇他这个光带时怎么做的。

最后发现,他是通过,加载一个 lightMap.jpg 这个纹理来实现的

好,我们来看看这个纹理和普通纹理有什么区别

我们会发现,这个高光纹理,他的颜色就三种颜色,分别是:r(红色), g(绿色), b(蓝色)

这样的一个三元色,
那他为什么要这么做呢?

最后我们发现,他这么做的原因,是因为他这样可以获取到,需要高光处的片源的的位置信息。说白了,就是获取位置,这个纹理的效果,就是想打了个标记,可以告诉我们,此处的片源是需要高光的,需要特殊颜色的,需要特殊处理

知道了这些,这个高光效果就很简单了

glsl 复制代码
uniform sampler2D lightMapTexture;

void main() {
    vec3 bakeDayColor = vec3(1.0, 1.0, 0.0); // 假设,这个是原本的颜色
    vec3 lightMapColor = texture2D(lightMapTexture, vUv).rgb; // 这个就是那个纹理的颜色
    vec3 macCoor = vec(0.5,0.3,0.65); // 假设这个是,Mac 电脑背后光的颜色
    float lightStrength = lightMapColor.r * 5.0; // 这里为什么是 lightMapColor.r 呢?这个要看lightMapTexture 这个纹理,在电脑处他是什么颜色的,我们此时假设他是 red的,那么就是 lightMapColor.r了
  
  // 关键的来了
 bakeDayColor = mix(bakeDayColor, macColor, lightStrength);
  gl_FragColor = vec4(bakedColor, 1.0);
	
}

这个就是最核心的代码。

相关推荐
yeflx15 小时前
LoFTR特征提取与跨图像匹配(失败的尝试)
3d
threelab16 小时前
Three.js 抽象艺术着色器效果 | 三维可视化 / AI 提示词
前端·javascript·人工智能·3d·着色器
TDK村田muRata17 小时前
CUS200M-12 | TDK医疗电源|直流12V 16.7A |CUS200M-12/A
服务器·人工智能·3d·机器人·无人机
七77.17 小时前
【3D场景生成】Controllable 3D Outdoor Scene Generation via Scene Graphs
3d·世界模型
kyle~1 天前
机器人时间链路---工程流程示例
c++·3d·机器人·ros2
传说故事1 天前
【论文阅读】VGGT-Ω
论文阅读·人工智能·3d·具身智能
熊猫_豆豆1 天前
一个模拟四轴飞行器在随机气流扰动下悬停飞行的交互式3D仿真网页,包含飞行器建模与PID控制算法
javascript·3d·html·四轴无人机模拟飞行
3DVisionary1 天前
磁性轴承尺寸如何精准检测?蓝光扫描仪全尺寸3D检测解析
人工智能·3d·质量控制·蓝光三维扫描仪·非接触三维测量·磁性轴承·全尺寸形位公差
MhZhou04121 天前
1.11M参数小模型实现脑瘤分割 CVPR 2026 Findings 开源
算法·计算机视觉·3d·空间计算
迁移科技1 天前
案例丨AI+3D视觉,赋能制药行业拆垛及破包更精准高效
人工智能·科技·3d·自动化·视觉检测