通用折射模拟

OpenGL学习笔记 天空盒(反射,折射) 天空盒 先展示一个效果图 多个纹理组合起来映射到一张纹理上的一种纹理类型:立方体贴图(Cube Map)。 简单来说,立方体贴图就是一个包含了6个2D纹理的纹理,每个2D纹理都组成了立方体的一个面:一个有纹理的立方体。你可能会奇怪,这样一个立方体有什么用途呢?为什么要把6张纹理合并到一张纹理中,而不是直接使用6个单独的纹理呢?立方体贴图有一个非常有用的特性,它可以通过一个方向向量来进行索引/采样。假设我们有一个1x1x1的单位立方体,方向向量的原点位于它的中心。使用一个橘黄色的方向向量来从立方体贴图上采 阅读详情

通用折射模拟(Generic Refraction Simulation)

作者:Tiago Sousa
本文版权归原作者所有,仅供个人学习使用,请勿转载,勿用于任何商业用途。
由于本人水平有限,难免出错,不清楚的地方请大家以原著为准。欢迎大家和我多多交流。
翻译:clayman
Blog:http://blog.youkuaiyun.com/soilwork

          折射,当光线从一种介质传播到另一种介质时发生的光学现象,是事实计算机图形渲染中的挑战之一。虽然有很多实现反射的模拟的技术(比如平面反射贴图,立方反射贴图),而且这些技术在大多数情况下都工作的很好。但是,对于折射来说,就没有那么多比较好的技术来解决这个问题。本文介绍了一种把场景中非折射物体渲染为一张纹理,并且通过扰动纹理坐标来实现折射的技术。这个方法非常的高效,并且在大多数情况下都工作的很好。这里所介绍的技术就是Far Cry中,用来渲染水面,水蒸汽,瞄准镜等效果的方法。

有几种模拟折射的方法:有些机遇预先渲染好的环境贴图,有些基于在运行时渲染的环境贴图。这些方法的缺点是需要额外的纹理储存空间,以及性能上的损失,特别是当环境中有多个折射平面,每个都需要不同环境贴图的情况。
此外,当前渲染水面折射技术的问题之一就是需要使用两个 pass :一个用来生成水面下几何体的反射贴图,一个用来渲染水面。这个方法效率很低,特别是在场景比较复杂的情况下。
本文描述了用于解决这些问题的方法。我们先介绍基本的技术――使用当前的后备缓冲作为折射贴图,接下来添加纹理坐标扰动,从而模拟折射。这个方法可能会出现一些问题,因此,我们接下来讨论了如何对折射贴图中的物体进行遮罩( mask )。最后,我们演示了如何使用折射技术来模拟真实的水面,以及玻璃。
 
19.1 基本技术
基本折射技术的第一步,就是跳过场景中所有会发生折射的物体,把场景渲染为一张纹理。我们将使用这张纹理来判断折射体之后的那些物体是可见的,并且在之后的 pass 中使用它。我们把这张纹理标记为 S 。
第二步就是渲染折射体,对纹理坐标进行扰动,对纹理 S 进行查找,模拟折射。可以使用一张法线图 N 来实现扰动,其中, N 中的红色和蓝色( XY )元素,被用于为纹理坐标添加微小位移。这个方法在 shader 中很容易实现:( 1 )对纹理 N 进行采样,( 2 )对 XY 元素进行微小的缩放(比如 0.05 ),( 3 )把偏移量加到 S 的纹理坐标上。下面的 shader 展示了这个方法:
half4 main(float2 bumpUV : TEXCOORD0,
     float4 screenPos   : TEXCOORD1,
     uniform sampler2D tex0,
     uniform sampler2D tex1,
     uniform float4 vScale) : COLOR
{
     //fetch bump texture, unpack from [0..1]to[-1,1]
     half bumTex = 2.0 * tex2D(tex0, bumpUV.xy) - 1.0;
     //displace texture coordinates
     half2 newUV = (screenPos.xy/screenPos.w) + bumpTex.xy * vScale.xy;
     //fetch refraction map
     return tex2D(tex1, newUV);
}
 
19.2 折射遮罩(Refraction Mask)
前面描述的基本技术在大多数情况下都工作的很好,但当有物体位于折射对象前方,并且凹凸扰动的尺寸很大时,可能会出现一些问题。位于折射对象之前的物体,也可能产生折射。
产生这种效果的原因是场景中除了折射对象之外的所有物体,包括那些位于折射体前面的对象,都被渲染到了纹理 S 中,并且我们不加选择的就对其中所有像素都进行了扰动。这就导致我们的折射产生了“泄漏”。一种直接的解决方案就是减小扰动的数量,让这种效果变的不太明显。但是,很难为所有环境下选取一个合适的缩放值,同时,这种方案也限制了表面折射可能的凹凸程度。
较好的解决方案是保证不对不正确的像素进行扰动。因此,我们在纹理 S 的 alpha 通道中,为所有折射体添加了一个遮罩,以保证所有纹理坐标扰动,只在屏幕上,折射体所覆盖的区域起作用。
为了实现这个方法,需要对渲染进行一些修改:首先,确保纹理 S 的 alpha 通道已经被清除为白色,接下来,把用黑色把折射体渲染到 alpha 通道中。当渲染折射体时,使用储存在 S alpha 通道中的额外信息,来分辨哪些像素将会被处理。检查 alpha 是否为白色,如果是,我们就不对这个区域进行扰动。只有当 alpha 值为黑色时,才进行扰动。虽然获得的结果是不精确的——折射有可能让那些并不是刚好在折射体之后的物体变的可见――但在实践中,这个方法非常的高效。下面的代码实现了这个方法:
half4 main( float2 bumpUV : TEXCOORD0,
     float4 screenPos   : TEXCOORD1,
     uniform sampler2D tex0,
     uniform sampler2D tex1,
     uniform float4 vScale) : COLOR
{
     //fetch bump texture
     half4 bumpTex = 2.0 * tex2D(tex0, bumpUV.xy) - 1.0;
     //compute projected texture coordinates
     half2 vProj = (screenPos.xy / screenPos.w);
     //fetch refraction map
     half4 vRefrA = tex2D(tex1, vProj.xy + bumpTex.xy * vScale.xy);
     half4 vrefrB = tex2d(tex1,vProj.xy);
     return vRefrB * vRefra.w + vrefrA * (1-vRefrA.w);
}
这个方法解决了之前可能出现的问题,在大多数情况下都能很好的模拟折射。
 
19.3 示例
使用前面阐述的技术,可以实现很多有趣的效果。比如:使用法线图来动画纹理,或者改变纹理坐标。这一部分,我们将讨论一些具体的例子
19.3.1 水面模拟
         使用这里介绍的技术模拟水面折射是想当高效的,因为当前的方法都需要使用额外的 pass ,把水下的物体再渲染一次,来产生折射贴图。这里,我们用一个 pass 就能渲染水面,因为额外需要的工作,就是把水平面渲染到纹理 S 的 alpha 通道中,作为折射遮罩 /
         在 Far Cry 里,我们使用了一张动画的凹凸纹理,效果相当好。在之后的实验中,我们使用了多个凹凸贴图层来模拟水面,并且根据菲涅耳对反射和折射进行混合,获得了更好的结果。
         为了渲染水面,先用如前所述的方法渲染场景,并把水面渲染到后背缓冲中的 alpha 通道作为折射遮罩。接下来,把水面之上的物体翻转到水面下,生成水面的反射贴图。最后,没有必要再用一个 pass 生成一张折射贴图。
         主要的纹理创建了之后,就可以渲染水面了。这里,我们使用了 4 个凹凸层。每层的的纹理坐标都在 vertex shader 中进行缩放,并且依次增加缩放值,这样才能生成低频到高频的水面波纹。为了模拟波纹的运动,我们还对纹理坐标进行了变换。下面的代码实现了这个方法:
Fresnel Approximation Computaton for Water Rendering
half Fresnel(half NdotL, half fresnelBias, half fresnelPow)
{
     half facing = (1.0 - NdotL);
     return max(fresnelBias + (1.0 - fresnelBias) * pow(facing,fresnelPow), 0.0;
}
The Fragment Program for Refraction/Reflection water
half4 main(float3 Eye: TEXCOORD0,
     float4 Wave0 : TEXCOORD1,
     float2 Wave1 : TEXCOORD2,
     float2 Wave2 : TEXCOORD3,
     float2 Wave3 : TEXCOORD4,
     float4 ScreenPos: TEXCOORD5,
     uniform sampler2D tex0,
     uniform sampler2D tex1,
     uniform sampler2D tex2) : COLOR
{
     half3 vEye = normalize(Eye);
     //get bump layer
     half3 vBumpTexA = tex2D(tex0, Wave0.xy).xyz;
     half3 vBumpTexB = tex2D(tex0, Wave1.xy).xyz;
     half3 vBumpTexC = tex2D(tex0, Wave2.xy).xyz;
     half3 vBumpTexD = tex2D(tex0, Wave3.xy)xyz;
    
     //average bump layer
     half3 vBumpTex = normalize(2.0 * (vBumpTexA.xyz + vBumpTexB.xyz+
                                           vBumpTexC.xyz + vBumpTexD.xyz) - 4.0);
     //apply individual bump scale for refraction and reflection
     half3 vRefrBump = vBumpTex.xyz * half3(0.075,0.075,1.0);
     half3 vReflBump = vBumptex.xyz * half3(0.02,0.02,1.0);
    
     //compute projected coordinates
     half2 vProj = (ScreenPos.xy/ScreenPos.w);
     half4 vReflection = tex2D(tex2, vProj.xy + vReflBump.xy);
     half4 vRefrA = tex2D(tex1, vProj.xy + vRefrBump.xy);
     half4 vRefrB = tex2D(tex1, vProj.xy);
    
     //Mask occluders from refracion map
     half4 vRefraction = vRefrB * vRefrA.w + vRefrA * (1-vRefrA.w);
    
     //compute fresnel term
     half NdotL = max(dot(vEye, vReflBump),0);
     half facing = (1.0 - NdotL);
     half fresnel = Fresnel(NdotL, 0.2, 5.0);
    
     //use distance to lerp between refraction and deep water color
     half fDistScale = saturate(10.0/Wave0,w);
     half3 WaterDeepColor = (vRefraction.xyz * fDistScale +
                               (1 - fDistScale) * half3(0,0.15,0.115);
    
     //lerp between water color and deep water color
     half3 WaterColor = half3(0, 0.15,0.115);
     half3 waterColor = (WaterColor * facing + WaterDeepColor * ( 1.0 - facing);
     half3 cReflect = fresnel * vReflection;
    
     //final water = reflection_color * fresnel + water_color
     return half4(cReflect + waterColor, 1);
}
 

点击这里下载完整代码

=======================================邪恶的分割线=====================

       本来还有一小节关于玻璃模拟的例子,因为原理和模拟水面差不多,就没有再翻了,呵呵。
       最近变懒了,每天下班,吃了饭,打阵wow就睡,导致Direct3D后面的部分一直没有弄出来。成都好热啊,唉,想回家了~~~
        哈哈,买了《ShaderX 4》和《The COMPLETE Effect and HLSL Guide》,不过可能要下个月才能寄过来,保佑这次邮递员能看懂e文,不要又弄错了-_-#
       最近MDX方面好像都没什么动静,8月的DX SDK出来了,依然没有多大变化,期待XNA Framwork的出现。
       在学OpenGL,习惯了对象技术,一下子看这种全部以函数形式组织的API,感觉好混乱。而且OpenGL1.1以上的函数还不能直接调用,实在是麻烦。

Unity ShaderGraph电介质高光节点:基于折射率的PBR材质精确控制 在基于物理的渲染(PBR)中,非金属材质的高光表现是模拟真实感的关键。其核心原理在于菲涅尔效应,即光线在材质表面的反射率会随入射角变化。基础反射率(F0)作为垂直入射时的反射强度基数,直接决定了高光的视觉特征。通过精确控制F0,可以实现从塑料、玻璃到水、皮肤等多种材质的逼真高光效果,提升渲染的真实性和一致性。在ShaderGraph中,电介质高光节点封装了折射率(IOR)到F0的物理转换,它作为一个精确查找表(LUT),简化了复杂计算,让开发者能通过直观的IOR参数驱动材质表现,广泛应用于游戏湿润表面、多层 阅读详情

相关推荐

使用 Python 模拟光的折射,反射,和全反射

使用 Python 模拟光的折射,反射,和全反射

不迁怒,不贰过。小知识,大智慧。 1989

Python模拟光的折射(未优化)

import matplotlib.pyplot as plt import math def refraction(startpoint=(0,0),n=1,n1=1.5,y=2,d=2): beta0 = 60/180*math.pi beta1 = 45/180*math.pi beta2 = 30/180*math.pi x0 = (y-startpoint[1])*(math.tan(beta0)) x1 = (y-startpoint[1])*(m.

Chandler_river的博客 1513

光线折射模拟的matlab仿真

光的折射是指光从一种介质斜射入另一种介质时,传播方向发生改变,从而使光线在不同介质的交界处发生偏折的现象。属于光的折射现象。光的折射与光的反射一样都是发生在两种介质的交界处,只是反射光返回原介质中,而折射光线则进入到另一种介质中。在折射现象中,光路是可逆的。一般来讲,在两种介质的分界处,不仅会发生折射,也发生反射。例如在水中,部分光线会反射回去,部分光线会进入水中。反射光线光速与入射光线相同 ,折射光线光速与入射光线不相同。光波是一种特定频段的电磁波。

平时工作较为繁忙,私信消息一般晚上回复,谢谢大家~~ 1819

光的折射模拟器(斯涅尔定律演示)

🟡 黄色</option><option value="green">🟢 绿色</option><option value="blue">🔵 蓝色</option><option value="red">🔴 红色入射角 θ₁ (度):</label><label>介质1折射率 n₁:</label><label>介质2折射率 n₂:

a7765431的博客 618

vue项目添加全局处理解决一些开发问题

如上问题有的来自我自身项目开发,有的收集网站,有的来自读者…如有侵权,立马删除。再者,针对此专栏中部分问题及其问题的解答思路或步骤等,存在少部分搜集于全网社区及人工智能问答等渠道,若最后实在是没能帮助到你,还望见谅!并非所有的解答都能解决每个人的问题,在此希望屏幕前的你能够给予宝贵的理解,而不是立刻指责或者抱怨!如果你有更优解,那建议你出教程写方案,一同学习!共同进步。ok,以上就是我这期的Bug修复内容啦,如果还想查找更多解决方案,你可以看看我专门收集Bug及提供解决方案的专栏。

**My Coding Family** 1921

怎么用python模拟光的折射,反射,和全反射

如上问题有的来自我自身项目开发,有的收集网站,有的来自读者…如有侵权,立马删除。再者,针对此专栏中部分问题及其问题的解答思路或步骤等,存在少部分搜集于全网社区及人工智能问答等渠道,若最后实在是没能帮助到你,还望见谅!并非所有的解答都能解决每个人的问题,在此希望屏幕前的你能够给予宝贵的理解,而不是立刻指责或者抱怨!如果你有更优解,那建议你出教程写方案,一同学习!共同进步。ok,以上就是我这期的Bug修复内容啦,如果还想查找更多解决方案,你可以看看我专门收集Bug及提供解决方案的专栏。

**My Coding Family** 1095

FDTD script command(源/监视器)

FDTD script command(源/监视器)

Temmie1024的博客 2552

电磁波穿透界面时折射与反射的Matlab仿真

电磁波穿透界面时折射与反射的Matlab仿真电磁波穿透界面时折射与反射的Matlab仿真电磁波穿透界面时折射与反射的Matlab仿真电磁波穿透界面时折射与反射的Matlab仿真电磁波穿透界面时折射与反射的Matlab仿真

real-anime-z效果惊艳:半透明衣物、金属盔甲反光、玻璃器皿折射效果

本文介绍了如何在星图GPU平台上自动化部署real-anime-z镜像,实现高质量动漫风格图片生成。该工具特别擅长处理半透明衣物、金属盔甲反光和玻璃器皿折射等细节效果,为动漫创作者提供高效的插画生成解决方案,适用于角色设计、海报制作等场景。

weixin_42315569的博客 560

unity shader实现玻璃折射效果

主要为大家详细介绍了unity shader实现玻璃折射效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

遥感数据处理必看:哨兵1 SLC与GRD预处理差异全解析

本文详细解析了哨兵1号卫星SLC与GRD数据的预处理差异,从数据基础认知到实战应用全流程对比。重点介绍了SLC数据的轨道校正、辐射校正等关键步骤,以及GRD数据的简化处理流程,帮助用户根据应用场景选择合适数据类型。通过SNAP等工具的实际操作示例,提升遥感数据处理效率。

weixin_29035405的博客 339

终极指南:Boat Attack如何用Unity通用渲染管线打造惊艳视觉效果

Boat Attack是一个基于Unity通用渲染管线(URP)的演示项目,展示了如何利用现代渲染技术创建逼真的水上竞速游戏体验。本文将深入解析该项目的核心技术实现、场景构建技巧以及性能优化策略,帮助开发者快速掌握URP的实战应用。 ## 🚤 项目核心架构解析 Boat Attack项目采用模块化设计,主要分为以下几个关键部分: - **渲染系统**:基于Unity URP实现的高质量渲染

gitblog_00103的博客 418

19-5 ACC 自适应巡航控制系统需求

本专题由深圳季连AIgraphX李博及团队出品,主要讲解ACC自适应巡航控制系统的开发与仿真测试。具体说来,包括ACC标准/法规分析、系统需求、系统架构、软件需求、软件架构、算法建模、验证场景分析、仿真实验搭建等内容。 本节主要讲ACC系统需求。

AIgraphX 1088

Ansys Zemax | 如何在OpticStudio中建模和设计真实波片

因此,在这种情况下,多配置编辑器可用于将 “Birefringent In” 和 “Birefringent Out” 表面更改为 “标准” 表面以及对应表面的材料。在示例文件中,结构 2 的材料是 “QUARTZ”,结构 3 的材料是“QUARTZ E”。为此,在第 1 表面之后插入第 2 表面,并将第 2 个表面设置为 “Biregringent In”,将第3个表面设置为 “Biregringent Out”。“快”轴方向在“QUARTZ”材料中定义,“慢”轴方向在“QUARTZ E”材料中定义。

ueotek的博客 2367

S7-200 SMART Modbus RTU从站配置与调试实战指南

本文提供了一份详细的S7-200 SMART PLC配置为Modbus RTU从站的实战指南。内容涵盖从硬件基础、软件准备、指令库调用、核心编程到地址映射与调试排错的完整流程。重点解析了MBUS_INIT与MBUS_SLAVE指令的关键参数配置,并深入探讨了Modbus地址与PLC内部V存储区的对应关系,帮助工程师快速打通通讯链路,实现与上位机、触摸屏等主站设备的稳定数据交互。

potato的博客 752

通达信烽火起爆指标公式

STICKLINE(IF(起爆666,-120,0),+33,0,3.4,0),COLOR007777;STICKLINE(IF(起爆666,-120,0),+33,0,1.8,0),COLOR009999;STICKLINE(IF(起爆666,-120,0),+33,0,1.2,0),COLOR00BBBB;STICKLINE(IF(起爆666,-120,0),+33,0,0.6,0),COLOR00DDDD;STICKLINE(起爆666,0,100,9999,0)*起爆,COLOR000000;

zhibiaogong的博客 3882

Kook Zimage 真实幻想 Turbo惊艳效果:幻想材质(星砂/液态光/记忆水晶)物理模拟

本文介绍了如何在星图GPU平台上一键自动化部署🔮 Kook Zimage 真实幻想 Turbo镜像,实现高效AI图像生成。该镜像专精于幻想风格材质物理模拟,能够快速生成如星砂、液态光、记忆水晶等逼真视觉效果,大幅提升数字艺术创作和概念设计效率。

BronzeDragon44的博客 723

pycharm添加Anaconda解释器显示不出来

因为我之前下载的是pycharm最新版本2024.1的,所以我抱着试一试的心态卸载重装了2021.3.3的,创建新文件的时候立刻就自己识别好了conda环境。就是图中画圈的地方,之前一直显示为python的图标,但是再Python Interpreter后面跟的路径确实是我下载anaconda的地方。另外一种方法就是使用Virtualenv Environment方式配置,但是我的pycharm还是没有识别出conda的图标。首先是这位的方法,先添加系统解释器,再重启,但是我的图标还是python。

2202_75803271的博客 4006

Unity URP水体渲染实战:Dragon Water插件定制与性能优化指南

在游戏开发中,水体渲染是构建沉浸式场景的关键技术,它通过模拟光线与液体的交互来提升视觉真实感。其核心原理涉及着色器编程、法线贴图叠加、平面反射与屏幕空间折射等技术,能够动态表现波纹、焦散和交互涟漪。这项技术的价值在于显著增强场景的氛围表现力与玩家互动体验,广泛应用于开放世界、角色扮演和冒险类游戏的湖泊、河流与海洋场景。本文以Dragon Water URP插件为例,深入解析其模块化设计,涵盖URP集成、Shader定制及性能优化策略,帮助开发者高效实现风格化水体效果。

weixin_30514745的博客 393

Claude Code 任务编排 头脑风暴与 疯狂拷问:Superpowers vs Grill-me 硬核对比与工程落地

Superpowers和Grill-me是AI编程中的互补工具:Superpowers提供工程化开发流程(从需求梳理到代码审查),确保规范执行;Grill-me通过持续追问帮助厘清需求,避免方向偏差。两者结合形成"构思-拷问-执行"工作流,前者负责方案生成与落地,后者专注需求审查。根据场景选择:个人项目可用Grill-me快速澄清需求,企业项目推荐Superpowers全流程,复杂开发则建议组合使用。它们分别解决"如何落地"和"是否对齐"的问题,共

十年老程序猿,AI 疯狂研究专家,前沿硬核知识分享 325

FPGA实践教程: 使用HLS将C程序生成IP核心进行FPGA开发

请根据您使用的FPGA开发板和供应商选择适当的HLS工具,并按照他们的安装指南进行安装。根据您使用的FPGA开发板和供应商选择适当的HLS工具,并按照他们的安装指南进行安装。通过本教程,您了解了如何使用HLS工具将C程序生成IP核心,并将其用于FPGA开发。在HLS项目中,您可以对C程序进行设计和优化,以生成对应的IP核心。在HLS项目中,您可以对C程序进行设计和优化,以生成相应的IP核心。将导出的IP核心导入到FPGA项目中。使用FPGA开发环境的菜单中的"导入"或"添加文件"选项导入IP核心。

CqpFsharp的博客 454

万象熔炉 | Anything XL惊艳效果:动态光影追踪+全局光照模拟视觉表现

本文介绍了如何在星图GPU平台自动化部署万象熔炉 | Anything XL镜像,实现高质量的本地AI图像生成。该镜像基于Stable Diffusion XL开发,支持动态光影追踪和全局光照模拟技术,能够生成具有惊艳视觉效果的二次元风格图片,适用于数字艺术创作和内容设计等场景。

weixin_42466857的博客 415

42、InfiniBand技术详解:QP状态机、操作及错误处理

本文深入解析InfiniBand技术中的核心组件QP(Queue Pair)状态机、工作请求处理机制、支持的操作类型及错误处理策略。详细介绍了QP的创建与状态转换流程,包括INIT、RTR、RTS等关键状态,并提供了状态修改的代码示例。文章还探讨了工作请求的发布、资源使用限制、围栏机制以及重试和RNR流程,帮助开发者理解通信可靠性保障机制。此外,涵盖了多播组的应用场景与API使用方法,并对比了用户空间与内核级RDMA API的调用差异,最后给出了实践建议和常见问题解答,为构建高性能分布式系统提供技术指导。

oauth7security的博客 131

【光照】Unity如何在Cubemap中[模拟折射]?

本文介绍了在Unity URP中实现折射效果的原理与实现方法。折射效果基于斯涅尔定律,通过计算折射向量并采样Cubemap来模拟光线折射现象。文章详细讲解了折射向量的数学计算原理,并提供了URP Shader实现示例,包括折射向量计算、失真效果、Cubemap采样和颜色混合等关键环节。此外,还提出了使用反射探针、LOD采样和屏幕空间折射等性能优化建议。该技术适用于模拟水、玻璃等透明材质的折射特性,为游戏渲染效果提供了重要实现手段。

设计 AI 玩游戏🎮 2184

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

光的折射模拟

import math import numpy as np import matplotlib.pyplot as plt from matplotlib.widgets import Slider, Button # 设置中文字体 plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False # 初始化参数 init_incident_angle = 30 init_n1 = 1.0 ini

2501_93812496的博客 779

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Ansys Zemax | 如何模拟双折射偏振器件

其中寻常光的折射率为垂直方向(S偏振态)的折射率,非寻常光的折射率为平行方向(P偏振态)的折射率。如果通过实验的方法进行测量,我们需要使用Y方向偏振的光入射偏振器并测量透过的光强,再计算X方向的偏振光透过的光强并计算两者之比。这种现象称为光的双折射。光线在双折射材料中的折射总是遵循斯涅耳定律 (Snell`s Law) 的,但是材料中的有效折射率与入射光的偏振态和入射方向与晶轴夹角相关。在寻常光追迹中,光线向量S和波矢k的方向一致,因此OpticStudio使用寻常光的波矢k的分量来定义光线的方向余弦。

ueotek的博客 1716

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

上一篇: Direct3D 10系统(三)
下一篇: Direct3D 10系统(四)
soilwork
博客等级 码龄23年 290粉丝 116原创
评论 16
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值