CN106355634A - 模拟太阳的方法及装置 - Google Patents
模拟太阳的方法及装置 Download PDFInfo
- Publication number
- CN106355634A CN106355634A CN201610771974.9A CN201610771974A CN106355634A CN 106355634 A CN106355634 A CN 106355634A CN 201610771974 A CN201610771974 A CN 201610771974A CN 106355634 A CN106355634 A CN 106355634A
- Authority
- CN
- China
- Prior art keywords
- sun
- texture
- default
- transformed
- color
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/55—Radiosity
Abstract
本申请提出模拟太阳的方法及装置。方法包括:预先设定太阳模型为由四个顶点连接而成的正四边形,预先设定与太阳模型对应的纹理坐标;将太阳模型转换到裁剪空间中,得到太阳的裁剪顶点;对太阳的裁剪顶点进行光栅化处理,得到对应的片元,对纹理坐标进行插值,得到片元中的每个像素点对应的纹理地址;根据各纹理地址,从预设的纹理图像中采集对应的纹素,将该纹素的颜色与预设的太阳颜色相乘,得到片元中与该纹理地址对应的像素点的颜色。本申请减少了模拟太阳的计算量。
Description
技术领域
本发明涉及场景渲染技术领域,尤其涉及模拟太阳的方法及装置。
背景技术
在当今的三维游戏场景中,为了呈现更为逼真的自然环境,模拟出天空及其天空中的太阳是必不可少的。而现如今3D游戏已不仅仅局限在PC机中安装运行,能在可移动设备(比如手机)中安装运行已成为了一种趋势。由于可移动设备的性能及其电量的限制,在PC机中使用的现有太阳模拟技术,过于复杂,使用在可移动设备中就使得游戏渲染效率低下,耗电量大增。
比较常见的实现方式是模拟大气散射,最常见的两种大气散射形式是Rayleigh散射和Mie散射。这两种散射使得太阳看上去有不同的颜色和光晕。比如太阳光在日落时是黄橙色或是黄红色,就是因为发生了Rayleigh散射的缘故。而当大气浑浊时,太阳周围会出现一个大的白色晕轮,这是因为太阳光发生了Mie散射的缘故。
现有技术为了模拟这两种大气散射形式,要对散射方程求解。而散射方程有嵌套的积分,所以又分解为相位函数、外向散射方程、内向散射方程、表面散射方程这四个方程来求近似解。实时模拟要进行这一系列的方程计算,方程中又有大量的积分运算。所以求解这些方程比较复杂且计算量非常大,在性能相对较差的移动设备中容易造成性能瓶颈。
发明内容
本申请提供模拟太阳的方法及装置,以减少模拟太阳的计算量。
本发明的技术方案是这样实现的:
一种模拟太阳的方法,该方法包括:
预先设定太阳模型为由四个顶点连接而成的正四边形,预先设定与太阳模型对应的纹理坐标;
将太阳模型转换到裁剪空间中,得到太阳的裁剪顶点;
对太阳的裁剪顶点进行光栅化处理,得到对应的片元,对纹理坐标进行插值,得到片元中的每个像素点对应的纹理地址;
根据各纹理地址,从预设的纹理图像中采集对应的纹素,将该纹素的颜色与预设的太阳颜色相乘,得到片元中与该纹理地址对应的像素点的颜色。
所述太阳模型的四个顶点的坐标分别为(-1,1)、(1,1)、(-1,-1)、(1,-1)。
所述纹理坐标分别为(0,0)、(1,0)、(0,1)、(1,1)。
所述将太阳模型转换到裁剪空间中包括:
根据太阳模型的四个顶点坐标,以及预设的太阳的方向、太阳的半径、世界转换矩阵及旋转偏移量,将太阳的四个顶点从模型空间转换到世界空间,根据预设的视见转换矩阵,将太阳的顶点从世界空间转换到相机空间,根据预设的投影转换矩阵将太阳的顶点从相机空间转换到裁剪空间。
所述将太阳模型转换到裁剪空间中包括:顶点着色器将太阳模型转换到裁剪空间中;
所述对太阳的裁剪顶点进行光栅化处理包括:光栅器对太阳的裁剪顶点进行光栅化处理;
所述对纹理坐标进行插值包括:光栅器对纹理坐标进行插值;
所述根据各纹理地址,从预设的纹理图像中采集对应的纹素,将该纹素的颜色与预设的太阳颜色相乘包括:片元着色器根据各纹理地址,从预设的纹理图像中采集对应的纹素,将该纹素的颜色与预设的太阳颜色相乘。
一种模拟太阳的装置,该装置包括:
顶点着色器,用于将太阳模型转换到裁剪空间中,得到太阳的裁剪顶点,其中,太阳模型为由四个顶点连接而成的正四边形;
光栅器,用于对顶点着色器得到的太阳的裁剪顶点进行光栅化处理,得到对应的片元,对与太阳模型对应的纹理坐标进行插值,得到片元中的每个像素点对应的纹理地址;
片元着色器,用于根据光栅器得到的各纹理地址,从预设的纹理图像中采集对应的纹素,将该纹素的颜色与预设的太阳颜色相乘,得到片元中与该纹理地址对应的像素点的颜色。
所述顶点着色器转换的太阳模型的四个顶点的坐标分别为(-1,1)、(1,1)、(-1,-1)、(1,-1)。
所述光栅器进行插值的纹理坐标分别为(0,0)、(1,0)、(0,1)、(1,1)。
所述顶点着色器将太阳模型转换到裁剪空间中包括:
根据太阳模型的四个顶点坐标,以及预设的太阳的方向、太阳的半径、世界转换矩阵及旋转偏移量,将太阳的四个顶点从模型空间转换到世界空间,根据预设的视见转换矩阵,将太阳的顶点从世界空间转换到相机空间,根据预设的投影转换矩阵将太阳的顶点从相机空间转换到裁剪空间。
可见,本申请能够减少模拟太阳的计算量,提高模拟太阳的效率。
附图说明
图1为本申请一实施例提供的模拟太阳的方法流程图;
图2为本申请另一实施例提供的模拟太阳的方法流程图;
图3为本申请实施例提供的太阳模型的四个顶点的示意图;
图4为本申请实施例提供的纹理坐标的示意图;
图5为本申请实施例提供的模拟太阳的装置的组成示意图。
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
图1为本申请一实施例提供的模拟太阳的方法流程图,其具体步骤如下:
步骤101:预先设定太阳模型为由四个顶点连接而成的正四边形,预先设定与太阳模型对应的纹理坐标。
其中,太阳模型的四个顶点的坐标分别为(-1,1)、(1,1)、(-1,-1)、(1,-1);纹理坐标分别为(0,0)、(1,0)、(0,1)、(1,1)。
步骤102:将太阳模型转换到裁剪空间中,得到太阳的裁剪顶点。
步骤103:对太阳的裁剪顶点进行光栅化处理,得到对应的片元,对纹理坐标进行插值,得到片元中的每个像素点对应的纹理地址。
步骤104:根据各纹理地址,从预设的纹理图像中采集对应的纹素,将该纹素的颜色与预设的太阳颜色相乘,得到片元中与该纹理地址对应的像素点的颜色。
图2为本申请另一实施例提供的模拟太阳的方法流程图,其具体步骤如下:
步骤201:预先设定太阳的模型为由四个顶点连接而成的正四边形,将太阳模型的四个顶点的坐标输入OpenGL(开放图形库)的顶点着色器,预先设定与太阳模型对应的四个纹理坐标,将四个纹理坐标输入顶点着色器;同时,将预设的太阳的方向、太阳的半径、世界转换矩阵、视见转换矩阵、投影转换矩阵以及旋转偏移量输入OpenGL的顶点着色器。
本申请中,太阳的模型如图3所示,太阳模型仅采用四个顶点构成,并使用一张表现太阳的图像纹理来模拟。初始的四个顶点:(-1,1)、(1,1)、(-1,-1)、(1,-1)的连线组成两个三角形,进而构成一个正四边形平面。
四个纹理坐标如图4所示,分别为(0,0)、(1,0)、(0,1)、(1,1),每个纹理坐标分别赋予太阳模型的一个顶点,以便将图像纹理正确映射到四个顶点构成的平面上。
太阳的方向、太阳的半径、世界转换矩阵、视见转换矩阵、投影转换矩阵以及旋转偏移量根据想要达到的太阳的三维场景中的位置、大小等预先设置。
步骤202:顶点着色器根据太阳模型的四个顶点坐标,以及太阳的方向、太阳的半径、世界转换矩阵及旋转偏移量,将太阳的四个顶点从模型空间转换到世界空间,然后根据视见转换矩阵,将太阳的顶点从世界空间转换到相机空间,再根据投影转换矩阵将太阳的顶点从相机空间转换到裁剪空间,得到太阳的裁剪顶点,将太阳的裁剪顶点的坐标输出到OpenGL的光栅器,同时,将四个纹理坐标输出到光栅器。
步骤203:光栅器根据太阳的裁剪顶点坐标,对太阳的裁剪顶点进行光栅化处理,得到对应的片元,且,光栅器对四个纹理坐标进行插值处理,得到片元中的各像素点对应的纹理地址,将该片元包含的各像素点的位置信息和各像素点对应的纹理地址输出到OpenGL的片元着色器。
步骤204:片元着色器根据各纹理地址从预设的纹理图像中采集纹素(即纹理元素),将该纹素的颜色与预设的太阳颜色相乘,得到片元中与该纹理地址对应的像素点的颜色。
纹理图像为根据想要达到的太阳渲染效果如:光晕、光强度等所设置的。当要更改太阳的渲染效果时,只需更改纹理图像即可。
预设的太阳颜色根据想要达到的太阳颜色设置。
可见,本申请实施例无需对散射方程求解,减少了模拟太阳的计算量,提高了模拟太阳的效率,适用于应用在移动设备中的三维场景(如:游戏场景)太阳模拟;且,在更改太阳的颜色、大小、位置时,只需更改预设的太阳颜色、半径、方向等参数即可;在更改太阳的渲染效果时,只需更改预设的纹理图像即可。
图5为本申请实施例提供的模拟太阳的装置的组成示意图,该装置主要包括:顶点着色器51、光栅器52和片元着色器53,其中:
顶点着色器51,用于将太阳模型转换到裁剪空间中,得到太阳的裁剪顶点,将太阳的裁剪顶点的坐标和预设的与太阳模型对应的纹理坐标输出到光栅器52,其中,太阳模型为由四个顶点连接而成的正四边形。
光栅器52,用于对顶点着色器51得到的太阳的裁剪顶点进行光栅化处理,得到对应的片元,对与太阳模型对应的纹理坐标进行插值,得到片元中的每个像素点对应的纹理地址,将片元中包含的各像素点的位置信息和各像素点对应的纹理地址输出到片元着色器53。
片元着色器53,用于根据光栅器52得到的各纹理地址,从预设的纹理图像中采集对应的纹素,将该纹素的颜色与预设的太阳颜色相乘,得到片元中与该纹理地址对应的像素点的颜色。
一实施例中,顶点着色器51转换的太阳模型的四个顶点的坐标分别为(-1,1)、(1,1)、(-1,-1)、(1,-1)。
一实施例中,光栅器52进行插值的纹理坐标分别为(0,0)、(1,0)、(0,1)、(1,1)。
一实施例中,顶点着色器51将太阳模型转换到裁剪空间中包括:
根据太阳模型的四个顶点坐标,以及预设的太阳的方向、太阳的半径、世界转换矩阵及旋转偏移量,将太阳的四个顶点从模型空间转换到世界空间,根据预设的视见转换矩阵,将太阳的顶点从世界空间转换到相机空间,根据预设的投影转换矩阵将太阳的顶点从相机空间转换到裁剪空间。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (9)
1.一种模拟太阳的方法,其特征在于,该方法包括:
预先设定太阳模型为由四个顶点连接而成的正四边形,预先设定与太阳模型对应的纹理坐标;
将太阳模型转换到裁剪空间中,得到太阳的裁剪顶点;
对太阳的裁剪顶点进行光栅化处理,得到对应的片元,对纹理坐标进行插值,得到片元中的每个像素点对应的纹理地址;
根据各纹理地址,从预设的纹理图像中采集对应的纹素,将该纹素的颜色与预设的太阳颜色相乘,得到片元中与该纹理地址对应的像素点的颜色。
2.根据权利要求1所述的方法,其特征在于,所述太阳模型的四个顶点的坐标分别为(-1,1)、(1,1)、(-1,-1)、(1,-1)。
3.根据权利要求2所述的方法,其特征在于,所述纹理坐标分别为(0,0)、(1,0)、(0,1)、(1,1)。
4.根据权利要求1所述的方法,其特征在于,所述将太阳模型转换到裁剪空间中包括:
根据太阳模型的四个顶点坐标,以及预设的太阳的方向、太阳的半径、世界转换矩阵及旋转偏移量,将太阳的四个顶点从模型空间转换到世界空间,根据预设的视见转换矩阵,将太阳的顶点从世界空间转换到相机空间,根据预设的投影转换矩阵将太阳的顶点从相机空间转换到裁剪空间。
5.根据权利要求1所述的方法,其特征在于,
所述将太阳模型转换到裁剪空间中包括:顶点着色器将太阳模型转换到裁剪空间中;
所述对太阳的裁剪顶点进行光栅化处理包括:光栅器对太阳的裁剪顶点进行光栅化处理;
所述对纹理坐标进行插值包括:光栅器对纹理坐标进行插值;
所述根据各纹理地址,从预设的纹理图像中采集对应的纹素,将该纹素的颜色与预设的太阳颜色相乘包括:片元着色器根据各纹理地址,从预设的纹理图像中采集对应的纹素,将该纹素的颜色与预设的太阳颜色相乘。
6.一种模拟太阳的装置,其特征在于,该装置包括:
顶点着色器,用于将太阳模型转换到裁剪空间中,得到太阳的裁剪顶点,其中,太阳模型为由四个顶点连接而成的正四边形;
光栅器,用于对顶点着色器得到的太阳的裁剪顶点进行光栅化处理,得到对应的片元,对与太阳模型对应的纹理坐标进行插值,得到片元中的每个像素点对应的纹理地址;
片元着色器,用于根据光栅器得到的各纹理地址,从预设的纹理图像中采集对应的纹素,将该纹素的颜色与预设的太阳颜色相乘,得到片元中与该纹理地址对应的像素点的颜色。
7.根据权利要求6所述的装置,其特征在于,所述顶点着色器转换的太阳模型的四个顶点的坐标分别为(-1,1)、(1,1)、(-1,-1)、(1,-1)。
8.根据权利要求7所述的装置,其特征在于,所述光栅器进行插值的纹理坐标分别为(0,0)、(1,0)、(0,1)、(1,1)。
9.根据权利要求6所述的装置,其特征在于,所述顶点着色器将太阳模型转换到裁剪空间中包括:
根据太阳模型的四个顶点坐标,以及预设的太阳的方向、太阳的半径、世界转换矩阵及旋转偏移量,将太阳的四个顶点从模型空间转换到世界空间,根据预设的视见转换矩阵,将太阳的顶点从世界空间转换到相机空间,根据预设的投影转换矩阵将太阳的顶点从相机空间转换到裁剪空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610771974.9A CN106355634A (zh) | 2016-08-30 | 2016-08-30 | 模拟太阳的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610771974.9A CN106355634A (zh) | 2016-08-30 | 2016-08-30 | 模拟太阳的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106355634A true CN106355634A (zh) | 2017-01-25 |
Family
ID=57856774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610771974.9A Pending CN106355634A (zh) | 2016-08-30 | 2016-08-30 | 模拟太阳的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106355634A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108182723A (zh) * | 2017-12-06 | 2018-06-19 | 北京像素软件科技股份有限公司 | 星空模拟方法和星空模拟装置 |
CN108470369A (zh) * | 2018-03-26 | 2018-08-31 | 城市生活(北京)资讯有限公司 | 一种水面渲染方法及装置 |
CN108921778A (zh) * | 2018-07-06 | 2018-11-30 | 成都品果科技有限公司 | 一种星球效果图生成方法 |
CN109529333A (zh) * | 2018-11-21 | 2019-03-29 | 北京像素软件科技股份有限公司 | 镜头光晕模拟方法、镜头光晕模拟装置及终端设备 |
CN110270089A (zh) * | 2019-06-21 | 2019-09-24 | 上海米哈游网络科技股份有限公司 | 一种模型细节展示方法、装置、服务器和介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110043518A1 (en) * | 2009-08-21 | 2011-02-24 | Nicolas Galoppo Von Borries | Techniques to store and retrieve image data |
CN105741228A (zh) * | 2016-03-11 | 2016-07-06 | 腾讯科技(深圳)有限公司 | 图形处理方法及装置 |
-
2016
- 2016-08-30 CN CN201610771974.9A patent/CN106355634A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110043518A1 (en) * | 2009-08-21 | 2011-02-24 | Nicolas Galoppo Von Borries | Techniques to store and retrieve image data |
CN105741228A (zh) * | 2016-03-11 | 2016-07-06 | 腾讯科技(深圳)有限公司 | 图形处理方法及装置 |
Non-Patent Citations (3)
Title |
---|
任程 等: "晴天天空与太阳的实时仿真", 《计算机辅助设计与图形学学报》 * |
周思远: "3D图形引擎的研究与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
杨键 等: "基于OpenGL的纹理贴图技术", 《软件导刊》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108182723A (zh) * | 2017-12-06 | 2018-06-19 | 北京像素软件科技股份有限公司 | 星空模拟方法和星空模拟装置 |
CN108182723B (zh) * | 2017-12-06 | 2021-10-26 | 北京像素软件科技股份有限公司 | 星空模拟方法和星空模拟装置 |
CN108470369A (zh) * | 2018-03-26 | 2018-08-31 | 城市生活(北京)资讯有限公司 | 一种水面渲染方法及装置 |
CN108470369B (zh) * | 2018-03-26 | 2022-03-15 | 城市生活(北京)资讯有限公司 | 一种水面渲染方法及装置 |
CN108921778A (zh) * | 2018-07-06 | 2018-11-30 | 成都品果科技有限公司 | 一种星球效果图生成方法 |
CN108921778B (zh) * | 2018-07-06 | 2022-12-30 | 成都品果科技有限公司 | 一种星球效果图生成方法 |
CN109529333A (zh) * | 2018-11-21 | 2019-03-29 | 北京像素软件科技股份有限公司 | 镜头光晕模拟方法、镜头光晕模拟装置及终端设备 |
CN110270089A (zh) * | 2019-06-21 | 2019-09-24 | 上海米哈游网络科技股份有限公司 | 一种模型细节展示方法、装置、服务器和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106355634A (zh) | 模拟太阳的方法及装置 | |
CN109427088B (zh) | 一种模拟光照的渲染方法及终端 | |
CN107452048B (zh) | 全局光照的计算方法及装置 | |
CN112316420B (zh) | 模型渲染方法、装置、设备及存储介质 | |
CN106127859B (zh) | 一种移动增强现实型涂鸦绘本的真实感生成方法 | |
CN104268922B (zh) | 一种图像渲染方法及图像渲染装置 | |
CN102096941B (zh) | 虚实融合环境下的光照一致性方法 | |
CN106204735B (zh) | Unity3D地形数据在Direct3D 11环境中的使用方法 | |
CN108986200B (zh) | 图形渲染的预处理方法及系统 | |
CN106558017B (zh) | 球形显示图像处理方法及系统 | |
CN111508052A (zh) | 三维网格体的渲染方法和装置 | |
CN108109194B (zh) | 虚拟现实场景中镭射纸效果的实现方法及系统 | |
CN107341853A (zh) | 超大虚拟场景和动态摄屏的虚实融合方法及系统 | |
CN110115841B (zh) | 一种游戏场景中植被对象的渲染方法和装置 | |
CN105023287A (zh) | 一种用于动态三维场景的激光雷达成像与着色方法 | |
CN101615300B (zh) | 一种屏幕空间微结构表面对象环境光遮挡方法 | |
CN108804061A (zh) | 虚拟现实系统的虚拟场景显示方法 | |
CN102243769A (zh) | 3d体积光动态实现方法及装置 | |
Kolivand et al. | Covering photo-realistic properties of outdoor components with the effects of sky color in mixed reality | |
CN104517313B (zh) | 基于屏幕空间的环境光遮蔽的方法 | |
CN101840585A (zh) | 一种将三维对象渲染为二维图像的方法 | |
CN109461197B (zh) | 一种基于球面uv和重投影的云实时绘制优化方法 | |
CN105976423B (zh) | 一种镜头光晕的生成方法和装置 | |
CN104318509B (zh) | 一种基于gpu的大批量目标高速标绘方法 | |
CN104123748A (zh) | 基于屏幕空间中点光源实现实时动态阴影的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170125 |