Open Shading Language

渲染器的高级着色语言
授权协议 BSD 3-Clause
开发语言 C/C++
所属分类 程序开发、 图形/图像处理
软件类型 开源软件
地区 不详
投 递 者 隗锐进
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

开放式着色语言(OSL)是一种小而丰富的语言,用于高级渲染器和其他应用程序中的可编程着色,非常适合描述材质,光源,位移和图案生成。

OSL最初是由Sony Pictures Imageworks开发的,用于其内部渲染器,该渲染器用于故事片动画和视觉效果,并以开源形式发布,因此可以被其他视觉效果,动画工作室和渲染软件供应商使用。现在,它已成为VFX和动画功能的事实上的标准着色语言,已在整个行业中用于许多商业和工作室专有渲染器。因此,OSL的工作于2017年获得了奥斯卡技术成就奖。

OSL健壮且经过生产验证,已用于“超凡蜘蛛侠”,“特兰西瓦尼亚酒店”,“明日边缘”,“蚁人”,“海底奇兵”等电影中。大多数高端渲染器都使用OSL支持高端VFX和动画工作。对于薄膜及相关产品的完整列表,请参阅片目

OSL代码以 “ New / 3子BSD”许可证分发,文档以Creative Commons Attribution 4.0国际许可证分发。简而言之,您可以在自己的应用程序中自由使用OSL,无论它们是免费的,商业的,开放的还是专有的,并可以根据需要修改OSL代码和文档,前提是您保留了以下内容中的原始版权声明:许可证。

  • Windows上编译OpenShadingLanguage 将OSL 1.3.0解压到[工作目录]/osl/OpenShadingLanguage 对Debug使用如下bat生成项目文件: @Echo off cd OpenShadingLanguage set LIBDIR=%CD%\..\.. :: create build directory mkdir build\windows_debu

  • 一:简介: OpenGL ES 着色语言是一种高级的图形编程语言.其源自应用广泛的C语言,同时具有RenderMan以及其他编程语言的一些优良特性. 与传统的语言不同的是,他提供了更加丰富的原生类型,比如向量,矩阵等.OpenGL ES着色语言的特性如下: 1.Open GL着色语言是一种高级的过程语言(不是面向对象) 2.对于顶点着色器,片元着色器使用的是同样的语言,不区分. 3.基于C/C++

  • Shader Language编程语言 Shader Language目前主要有3种主流语言: 基于 OpenGL 的 OpenGL Shading Language,简称 GLSL; 基于 DirectX 的 High Level Shading Language,简称 HLSL; 还有 NVIDIA 公司的 C for Graphic,简称 Cg 语言。 OpenGL(全写Open Graph

  • VRC (Virtual Reality Chat) is an open-source 3D chat application using the OpenGL API and OpenGL Shading Language. It supports the Internet Relay Chat (IRC) and its own simple chat protocol. The OpenG

  • 1、图像API OpenGL (OpenGraphics Library)是一个跨编程语言,跨平台的编程图形程序接口,它将计算机的资源抽象称为一个个OpenGL的对象,对这些资源的操作抽象为一个个的OpenGL指令。 OpenGL ES(OpenGL for Embedded Systems)是OpenGL三维图形API的子集,针对手机、PDA和游戏主机等嵌入式设备而设计,去除了许多不必要和性能较

  • shader language,称为着色语言,shade在英语是阴影、颜色深浅的意思,Wikipedia上对shader language 的解释为基于物体本身属性和光照条件,计算每个像素的颜色值。 实际上这种解释具有明显的时代局限性,在gpu编程发展的早期,shader language 的提出目标是加强对图形处理算法的控制,所以对该语言的定义亦针对于此,但随着技术的进步,目前的shader l

  •  1.OpenGL(全写Open Graphics Library),工业标准,计算机图形库,用于三维图形;专业的图形程序接口。它用于三维图像(二维的亦可),是一个功能强大,调用方便的底层图形库。OpenGL(open graphics library)是一种独立的平台无关的三维图形开发库,在各种语言下进行主框架开发并结合应用OpenGL函数都可以开发出三维游戏。OpenGL驱动。  2.Open

 相关资料
  • “渲染”(Rendering)是即使非计算机专业的都不会觉得陌生的词,虽然在很多人说这个词的时候,并不清楚“渲染”究竟意味着什么。相反,“着色器”(Shader)很可能是大家比较陌生的词,从名字看上去似乎是用来上色的,但它具体能做什么呢? 在解释着色器之前,我们先来聊聊渲染。 渲染 用通俗的话来说,渲染就是将模型数据在屏幕上显示出来的过程。 这听起来好像很简单呢!但正如你打开一个Word写文档一样

  • 我正在渲染很多轴对齐的3D立方体。每个立方体的中心位置和/或颜色可能不同于其他立方体。这就是我现在渲染它的方式 My DrawCube()使用和存储在VBO中的顶点数据,简单地渲染立方体每一侧对应的6个四边形。glVertexPointer和glColorPointer用于设置属性元素。 这是可行的,但是我想通过使用可能是glDrawElementsInst的()来使用即时渲染。但是由于项目的一些

  • 我想在FBO中加载两个纹理,其中一个纹理包含HDR图像,我的第一个目标是将图像从第一个纹理“复制”到第二个纹理(该纹理为空),并称为“下采样纹理”。 所以我创建FBO,加载我想用颜色_附件_0书写的纹理,并绑定它;然后初始化我的着色器程序并渲染一个四边形,其中包含我要在GL\u texture\u 0中读取的纹理。 然后我解开FBO并绑定“DownSamplingTex”,然后画一个四元组。 我不

  • 我有一个非常简单的OpenGL应用程序,只渲染一个带纹理的四边形。这是我的代码,效果很好(带纹理的四边形看起来很好): 然后我想介绍一个简单的着色器。所以我稍微修改了我的代码: 顶点着色器: 片段着色器: 现在我得到的只是一个黑色的四边形:-( 我已经尝试并测试了很多东西: 着色器编译良好(无错误) 有人知道为什么我在使用着色器时看不到我的纹理吗?

  • 我用C SDL2 GLEW Opengl 4.1编程一个小的体素游戏,有点像Minecraft。 我正在尽可能优化体素渲染。 我把世界滑成一块块,而这块块又滑成一块块。 每个块包含16x16x16个块。 现在,如果编辑块(删除/放置块),我将重建完整块和相邻块,并将其与vao和vbo一起上载到图形卡。 现在,为了最小化顶点数据,我必须从cpu传输到gpu,我使用几何体着色器。 首先,这是个好主意吗

  • 我在OSX上使用LWJGL 3。使用版本时,着色器工作正常 我的着色器尽可能简单: 顶点着色器: 片段着色器: 我创建了一个像这样的简单三角形(Scala): 我把它画成这样: 着色器编译良好,程序运行,但我只是得到一个空白的屏幕!我的代码有什么明显的问题吗?

  • 服务端渲染与客户端渲染有些许不同,因为你需要: 发生错误时发送一个 500 的响应 需要重定向时发送一个 30x 的响应 在渲染之前获得数据 (用 router 帮你完成这点) 为了迎合这一需求,你要在 <Router> API 下一层使用: 使用 match 在渲染之前根据 location 匹配 route 使用 RoutingContext 同步渲染 route 组件 它看起来像一个虚拟的

  • 在一个教程之后,我将尝试使用FreeType在OpenGL中渲染文本。因此,灰度8位图像用作每个字符的纹理,使图像的每个字节对应于纹理的红色分量。 为了以其他颜色呈现文本,建议您使用着色器。但是,当使用提供的着色器时,我看到的不是彩色字母,而是彩色框,好像根本没有纹理。 以下是没有着色器时的效果: 这是它在着色器中的外观: (盒子的位置也会发生变化) 以下是顶点着色器代码: 这是片段着色器代码: