首页
学习
活动
专区
工具
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); } 主程序中增加几个角度的设置

2.2K20

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

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

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

    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.7K30

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

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

    1.5K10

    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 来规范属性...,在控件中不直接操作颜色,而是通过属性来操作颜色,因为属性具有明确的场景意义。

    5.4K20

    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只包含场景、材料、脚本等引用的对象。

    1.6K32

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

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

    17.1K97

    前端新玩具——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_ 向量坐标说完了,...不!这不科学!一定不是这样的!程序员是一类神奇的生物,凡是遇到觉得很烦躁很麻烦的东西,都会创造另外一些东西让他们不烦躁不麻烦。这个“另外一些东西”就是:库。

    3.1K70

    前端新玩具——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.1K10

    Android 学习资料收集

    App 研发录 本书作者是包建强, 本书作者多年 App 开发的经验总结, 从App架构的角度, 重点总结了 Android 应用开发中常见的实用技巧和疑难问题解决方法, 为打造高质量 App 提供有价值的实践指导...Android 设计模式源码分析 本书作者是开发技术前线创立者之一 Mr.Simple, 该书从 Android 源码的角度由浅入深地剖析设计模式的运用, 让工程师们把设计与模式重视起来, 提升自己的设计能力与代码质量...APP, 获得豌豆荚110期设计奖 EverMemo 开发者是代码家, EverMemo 是一款让你快速记录与分享灵感的随身便签, 极简的界面与卡片式布局, 让你记录与查找便签更有效率 9GAG...Android 开发者维护, 分享的内容不仅仅只有干货, 而且还有最新的技术分享, 也是Android 开发圈子最早, 最有名的周报 Android 开发技术周报 Android 开发技术周报是由@脉脉不嘚語...Design 设计: Material Design 教程 Material Design 教程(中文版) Material Design 教程(中文版)新增二十多章节 Material

    1.2K20

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

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

    2.7K32
    领券