三、光源对物体表面的影响

1.受光照影响材质

(1)基础网格材质MeshBasicMaterial ()

        不会受到光照影响。 

  const material = new THREE.MeshBasicMaterial({
    color: 0x00ffff, //青色
    transparent: true, //开启透明
    opacity: 0.5, //透明程度
  });

(2)漫反射网格材质MeshLambertMaterial ()

会受到光照影响,该材质也可以称为Lambert网格材质,音译为兰伯特网格材质。

 //   创建一个光源对象
  const poinLight = new THREE.PointLight(0xffffff, 1.0);
  poinLight.decay = 0.0; //不希望衰减 设置光源不随距离而衰减
  poinLight.position.set(400, 700, 400); //设置点光源的位置
  scene.add(poinLight);

2.光源简介 

点光源 

点光源PointLight (opens new window)可以类比为一个发光点,就像生活中一个灯泡以灯泡为中心向四周发射光线。

PointLight( color : Color, intensity : Float, distance : Number, decay : Float )

color -(可选)一个表示颜色的 Color 的实例、字符串或数字,默认为一个白色(0xffffff)的 Color 对象。
intensity -(可选)光照强度。默认值为 1。
distance - 光源照射的最大距离。默认值为 0(无限远)。
decay - 沿着光照距离的衰退量。默认值为 2。

//点光源:两个参数分别表示光源颜色和光照强度
// 参数1:0xffffff是纯白光,表示光源颜色
// 参数2:1.0,表示光照强度,可以根据需要调整
const pointLight = new THREE.PointLight(0xffffff, 1.0);
(1) 光照强度

除了通过THREE.PointLight的参数2设置光照强度,你可以可以直接访问光照强度属性.intensity设置。

pointLight.intensity = 1.0;//光照强度
(2)光源衰减

实际生活中点光源,比如比如一个灯泡,随机距离的改变,光线会衰减,越来越弱,光源衰减属性.decay默认值是2.0,如果你不希望衰减可以设置为0.0

pointLight.decay = 0.0;//设置光源不随距离衰减
(3)光源位置
//点光源位置
pointLight.position.set(400, 0, 0);//点光源放在x轴上
(4)光源添加到场景
scene.add(pointLight); //点光源添加到场景中

在MATLAB中进行维场景下个垂直点光源照射物体的仿真是一个常见的计算机视觉和图形学应用。这种模拟通常涉及到光线追踪、光照模型以及渲染技术。以下是简单的步骤: 1. **设置环境**: 首先,你需要导入`patch`或`surf`函数来创建你要照明的物体模型,并使用`light`函数添加点光源。 ```matlab figure; [x,y,z] = cylinder([0.5 0.5],36); % 创建一个圆柱体作为示例物体 obj = patch(x,y,z,'k'); % 黑色表面表示物体,可以根据需要改变颜色 hold on; ``` 2. **添加光源**: 定义个垂直方向的点光源,可以使用`light`函数,并指定光源的位置和颜色。 ```matlab % 点光源A,B,C lightPosA = [0 0 -5]; lightColorA = [1 1 1]; % 白色光源 lightPosB = [0 0 5]; lightColorB = [1 1 1]; lightPosC = [0 0 -10]; lightColorC = [1 1 1]; light('Position',lightPosA, 'Style', 'point'); light('Position',lightPosB, 'Style', 'point'); light('Position',lightPosC, 'Style', 'point'); ``` 3. **设置材质**: 对于反射效果,需要给物体设置合适的漫反射和镜面反射。你可以通过`material`属性进行设置。 ```matlab material(obj, 'FaceColor', 'interp', ... % 自动选择适合的纹理 'DiffuseColor', [0.8 0.8 0.8], ... % 漫反射颜色 'SpecularColor', [1 1 1], ... % 镜面反射颜色 'AmbientIntensity', 0.1); ``` 4. **渲染图像**: 使用`render`或`camlight`来生成图像,后者会自动调整相机角度以适应光源。 ```matlab view(3); % 设置俯视视角 render(obj); % 渲染物体 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值