首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

11.opengl光照-常见的三种光照实现

代码说明,代码改动不大,贴完整代码了,注意平行光是directiion计算,点光源是基于position计算 2.1 片元着色器中修改光照参数 struct Light { vec3 position...落在这个角度之外的物体都不会被这个聚光所照亮。 Thetaθ:LightDir向量和SpotDir向量之间的夹角。在聚光内部的话θ值应该比ϕ值小。 2. 实现效果 ? 聚光 3....着色器中增加聚光的参数 struct Light { vec3 position; //灯光位置 vec3 direction; // 灯光方向 float cutOff; // 灯光的开合角度...很难去表现这个公式是怎么工作的,所以我们用一些实例值来看看: ? 按照余弦值来计算比较方便,单位向量的点乘结果就是余弦值,有其他的线性差值实现也是可行的,比如按角度渐进。...; vec3 result = ambient + diffuse + specular; FragColor = vec4(result, 1.0); } 主程序中增加几个角度的设置

2K20

蓝桥ROS→f1tenth和PID绕圈←外传

先添加对应颜色: 颜色名称:银灰色,颜色RGB代码:A9A6AB  银灰色的Rgb值都是统称为银色的,它的标准颜色16进制的RGB数值是:#c0c0c0,标准颜色十进制RGB数值是:红(192) 绿... ...将车体模型文件放置在ROS工作空间的src目录下。 编译ROS工作空间,以确保模型文件被正确编译。 启动Gazebo仿真器,使用ROS命令行工具启动仿真器。...该算法通过对车辆的速度和转向角度进行控制,使车辆能够沿着指定路径行驶,并保持在路径中心线上。...比例系数用于控制车辆的转向角度,积分系数用于消除系统的稳态误差,微分系数用于消除系统的瞬态误差。 4 输入控制指令 将计算出的PID控制指令输入到车辆控制系统中,控制车辆的速度和转向角度

36730
您找到你想要的搜索结果了吗?
是的
没有找到

Angular Material 的设计之美

接下来我会从相对宏观的角度介绍 Angular Material 设计的一些亮点,并且简单介绍 Angular Material 的一些使用技巧。...顺便插一句,如果大家纠结用 Sass 还是 Less,可以看一下这篇文章 CSS 预处理器中的循环,个人建议用 Less,请原谅我无意引战?。...$mat-red: ( 50: #ffebee, 100: #ffcdd2, 200: #ef9a9a, 300: #e57373, 400: #ef5350, 500: #f44336...我最开始认为将所有样式全部写到 mixin 中并不是很优雅的做法,但是在编写 ng-matero 暗黑主题的时候,我发现这样做是不行的。以下是 Angular Material 主题定制的方法。...如果只作为 DEMO 展示是没问题的,但是生产环境推荐这样做。 ng-matero 在使用 ng add 初始化的时候增加了预构建主题选项,生成的主题只有一份,如果有特殊需求可以自行定制。

5K30

Threejs入门之七:Threejs中的几何体

thetaStart — 第一个分段的起始角度,默认为0。(three o’clock position) thetaLength — 圆形扇区的中心角,通常被称为“θ”(西塔)。...thetaStart — 第一个分段的起始角度,默认为0。(three o’clock position) thetaLength — 圆锥底面圆扇区的中心角,通常被称为“θ”(西塔)。...phiStart — 指定水平(经线)起始角度,默认值为0。。 phiLength — 指定水平(经线)扫描角度的大小,默认值为 Math.PI * 2。...thetaStart — 指定垂直(纬线)起始角度,默认值为0。 thetaLength — 指定垂直(纬线)扫描角度大小,默认值为 Math.PI。...THREE.DirectionalLight(0xffffff,1)// 设置光源的方向 directionalLight.position.set(80,100,50)// 光的方向指向对象网格模型mesh,设置默认为

1.2K30

PDMS二次开发(五)——小试牛刀之细节整理和收尾

可以实现六种批处理:全部材料虚、全部材料取消虚、只虚仪表、虚仪表+配对法兰垫片、取消虚仪表、只虚管嘴配对法兰垫片(可以只虚头或尾或同时虚)、取消虚管嘴配对法兰垫片 通过txt文件保存和读取管线列表,实现工作对象范围的存储功能...List增加了右键菜单功能,增强用户体验、验证了界面的可扩展性 一次导出全套报表功能,实战中很少有报表是一个个点出来的,都是一次生成套表 原本想增加一个通过勾选方式手动设置材料DOTD值的界面,因为从开发角度来说没有什么新东西...原本想增加一个材料描述可配置选择功能,选择材料描述是采用RTEXT、STEXT或TTEXT,因为发现AVEVA示例库只有RTEXT属性有材料描述,也没什么新内容,于是取消了 演示效果 图1 选中导出套表,选中导出单个报表...图8 设置菜单项 步骤五:点击菜单按钮,就可以启动小工具了,如图9所示。...图9 启动 备注:MSSQL数据库Express版本都是免费下载的,安装简单,用create.sql创建数据表后就可以跑CHECK功能了,数据库安装和操作可以直接百度。

1.1K10

Android App Dark Theme(暗黑模式)适配指南

mp.weixin.qq.com 为你的 Android App 适配暗黑模式 适配大概可以分为三部分工作: 为应用内的背景、文字、图标做适配 对在设备上显示但并不直接控制的界面进行适配,例如通知、桌面组件...当然这里的适配工作全是系统自己做的,所以作为开发者你需要进行详细的测试,确保没有错误的地方。...使用 Material Design Components 进行适配 Material Design Components 不仅仅包含了各式各样的组件,还完善了 Material Design 的规范,...相比自定义适配、使用 Material Design Components 适配从设计的角度上更加规范,同时对 theme、attr、style 的不同使用场景也做了更加明确的区分,通过 theme 来规范属性...,在控件中直接操作颜色,而是通过属性来操作颜色,因为属性具有明确的场景意义。

4.9K20

2018年最优秀的9个Android Material Design Apps!

也带来了Material Design 的一些改变 – Material Theming (材料主题),旨在自定义Material Design应用程序,以更好地反映产品品牌。...那么,从日常生活中,与人们关系最密切的手机应用的角度来讲,2018年有哪些优秀的安卓材料设计主题的手机应用呢? 1. Airbnb ?...一个建立在更高效、更好协作基础上的应用程序,需要在视觉上集中和清晰,以使用户集中精力完成工作。Asana通过短暂的,重复的交互实现了高效工作和协作,也不会因为广泛的无实际作用的操作而偏离内容主题。...- 产品所有者Tejas Mistry 9. Eventbrite Organizer 下载量:1,598 ?...希望这9 大优秀的安卓材料设计应用程序能给你的产品带来新的启发。

1.8K40

Unity性能调优手册4:资源优化,Texture,Mesh,Material,Animation,ParticleSystem,Audio,ScriptableObject

(4^(n-1)) 3.4S-S = 3S = 1 -1/(4^n) 4.n趋于无穷大,3S = 1,所以多出来的内存占用为 1/3 Aniso Level Aniso Level是一个在物体以浅角度渲染时渲染纹理而模糊的函数...但是,如果项目设置为“强制开启”,则该值被限制为9~16。 •其他:设置为该值 当导入纹理时,该值默认为1。因此,除非您的目标是高规格设备,否则不建议使用强制开启设置。...在本章中,我们将从性能调优的角度介绍如何使用粒子系统,以及如何避免错误。 以下两点很重要。 •保持低颗粒数量。...它适用于希望直接解压缩到内存中的文件大小较大的声音,或者不受轻微播放延迟影响的声音。它常用于语音对话。 Streaming 流媒体,顾名思义,是一种加载和播放声音的方法。...从性能的角度来看,以下两点尤其需要注意 • Resources folder • StreamingAssets folder 通常情况下,Unity只包含场景、材料、脚本等引用的对象。

67131

Android MVVM框架搭建(一)ViewModel + LiveData + DataBinding

数据观察 三、DataBinding使用 ① 单向绑定 ② 双向绑定 四、源码 前言   MVVM框架出来已经有一段时间了,现在也有很多的项目运用了MVVM框架,因此也不算是很新的东西,但是从个人的角度来说我希望写出来...ViewModel:关联层,将Model和View进行绑定,只做和业务逻辑相关的工作涉及任何和UI相关的操作,持有控件引用,更新UI。...View只做和UI相关的工作涉及任何业务逻辑,涉及操作数据,处理数据。UI和数据严格的分开。...> <com.google.android.material.button.MaterialButton android:id="@+id/btn_login"...我将会输入study、666,然后点击登录按钮,也会将输入框的数据显示在TextView上,这样是否会省去很多不必要的繁琐工作呢?

14.2K86

前端新玩具——webGL简介

大家明白,模拟三维空间,需要非常多的计算,网格的坐标、大小、角度,网格的平移、旋转,相机观察网格的二维映射等等等等。...值得一提的是,齐次坐标表示方法唯一,(x, y, z, w)跟(x/w, y/w, z/w, 1)表示同一个点,后者为齐次坐标的正常化处理。...eg: (15, 12, 9, 3)跟(5, 4, 3, 1)并没有什么区别,都表示三维点(5, 4, 3)。(作者抱着《线性代数》又是一顿狂翻......)...url=qKIV6kEiCXE-MEdwSFvI3Ew6XkDwoOywt_6oYG8Nu6tdThO1EF9heuS8MDQpujJbXyDErMPsDYBiGNj3FqL9l_ 向量坐标说完了,...!这不科学!一定不是这样的!程序员是一类神奇的生物,凡是遇到觉得很烦躁很麻烦的东西,都会创造另外一些东西让他们不烦躁麻烦。这个“另外一些东西”就是:库。

2.8K70

前端新玩具——webGL简介

大家明白,模拟三维空间,需要非常多的计算,网格的坐标、大小、角度,网格的平移、旋转,相机观察网格的二维映射等等等等。...值得一提的是,齐次坐标表示方法唯一,(x, y, z, w)跟(x/w, y/w, z/w, 1)表示同一个点,后者为齐次坐标的正常化处理。...eg: (15, 12, 9, 3)跟(5, 4, 3, 1)并没有什么区别,都表示三维点(5, 4, 3)。(作者抱着《线性代数》又是一顿狂翻......)...url=qKIV6kEiCXE-MEdwSFvI3Ew6XkDwoOywt_6oYG8Nu6tdThO1EF9heuS8MDQpujJbXyDErMPsDYBiGNj3FqL9l_ 向量坐标说完了,...!这不科学!一定不是这样的!程序员是一类神奇的生物,凡是遇到觉得很烦躁很麻烦的东西,都会创造另外一些东西让他们不烦躁麻烦。这个“另外一些东西”就是:库。

2K10
领券