主权项 |
一种基于GPU编程的红外反射特性仿真方法,包括如下步骤:(1)用大气辐射传输计算软件Atmosphere获得后缀为压缩纹理图像格式DDS的太阳直射辐射纹理D、天空背景辐射纹理S、大气路径辐射纹理L和大气透过率纹理T;(2)通过实验或测量仪器测量,获得计算BRDF需要的所有材质参数M;(3)利用材质参数M,根据简化的Schlick BRDF反射模型,计算不同角度下不同像素点对太阳直射辐射的反射量E<sub>1</sub>:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>E</mi><mn>1</mn></msub><mrow><mo>(</mo><mi>t</mi><mo>,</mo><mi>v</mi><mo>,</mo><msup><mi>v</mi><mo>′</mo></msup><mo>,</mo><mi>w</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>ρ</mi><mrow><msub><mi>λ</mi><mn>1</mn></msub><mo>-</mo><msub><mi>λ</mi><mn>2</mn></msub></mrow></msub><mi>D</mi><mrow><mo>(</mo><mi>t</mi><mo>,</mo><mi>v</mi><mo>,</mo><msup><mi>v</mi><mo>′</mo></msup><mo>,</mo><mi>w</mi><mo>)</mo></mrow><msub><mi>E</mi><mi>s</mi></msub><mi>v</mi><mo>,</mo></mrow>]]></math><img file="FDA0000638118760000016.GIF" wi="743" he="87" /></maths>其中,<img file="FDA0000638118760000017.GIF" wi="110" he="62" />为波段λ<sub>1</sub>~λ<sub>2</sub>内的波段反射率,E<sub>s</sub>为材质表面处迎着太阳方向上太阳直射辐射的辐照度,v=cos(θ),v′=cos(θ′),t=cos(α),<img file="FDA0000638118760000018.GIF" wi="256" he="66" />θ为太阳入射光线与材质表面法线的夹角,θ′为视点方向与材质表面法线的夹角,α为材质表面法线与半角向量的夹角,<img file="FDA0000638118760000019.GIF" wi="53" he="58" />为材质表面的切向量与半角向量在平面内的投影向量的夹角,D(t,v,v′,w)为方向特征因子,其公式如下,<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>D</mi><mrow><mo>(</mo><mi>t</mi><mo>,</mo><mi>v</mi><mo>,</mo><msup><mi>v</mi><mo>′</mo></msup><mo>,</mo><mi>w</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mn>1</mn><mo>-</mo><mi>G</mi><mrow><mo>(</mo><mi>v</mi><mo>)</mo></mrow><mi>G</mi><mrow><mo>(</mo><msup><mi>v</mi><mo>′</mo></msup><mo>)</mo></mrow></mrow><mi>π</mi></mfrac><mi>A</mi><mrow><mo>(</mo><mi>w</mi><mo>)</mo></mrow><mo>+</mo><mfrac><mrow><mi>G</mi><mrow><mo>(</mo><mi>v</mi><mo>)</mo></mrow><mi>G</mi><mrow><mo>(</mo><msup><mi>v</mi><mo>′</mo></msup><mo>)</mo></mrow></mrow><mrow><mn>4</mn><mi>πv</mi><msup><mi>v</mi><mo>′</mo></msup></mrow></mfrac><mi>Z</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mi>A</mi><mrow><mo>(</mo><mi>w</mi><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0000638118760000011.GIF" wi="1163" he="134" /></maths>其中,<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mi>Z</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mi>r</mi><msup><mrow><mo>(</mo><mn>1</mn><mo>+</mo><msup><mi>rt</mi><mn>2</mn></msup><mo>-</mo><msup><mi>t</mi><mn>2</mn></msup><mo>)</mo></mrow><mn>2</mn></msup></mfrac><mo>,</mo></mrow>]]></math><img file="FDA0000638118760000012.GIF" wi="461" he="142" /></maths><maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mi>A</mi><mrow><mo>(</mo><mi>w</mi><mo>)</mo></mrow><mo>=</mo><msqrt><mfrac><mi>p</mi><mrow><msup><mi>p</mi><mn>2</mn></msup><mo>-</mo><msup><mi>p</mi><mn>2</mn></msup><msup><mi>w</mi><mn>2</mn></msup><mo>+</mo><msup><mi>w</mi><mn>2</mn></msup></mrow></mfrac></msqrt><mo>,</mo></mrow>]]></math><img file="FDA0000638118760000013.GIF" wi="548" he="174" /></maths><maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><mi>G</mi><mrow><mo>(</mo><mi>v</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mi>v</mi><mrow><mi>r</mi><mo>-</mo><mi>rv</mi><mo>+</mo><mi>v</mi></mrow></mfrac><mo>,</mo></mrow>]]></math><img file="FDA0000638118760000014.GIF" wi="394" he="129" /></maths><maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><mi>G</mi><mrow><mo>(</mo><msup><mi>v</mi><mo>′</mo></msup><mo>)</mo></mrow><mo>=</mo><mfrac><msup><mi>v</mi><mo>′</mo></msup><mrow><mi>r</mi><mo>-</mo><msup><mi>rv</mi><mo>′</mo></msup><mo>+</mo><msup><mi>v</mi><mo>′</mo></msup></mrow></mfrac><mo>,</mo></mrow>]]></math><img file="FDA0000638118760000015.GIF" wi="405" he="149" /></maths>r∈[0,1]为材质的粗糙因子,p∈[0,1]为材质的各向同性因子;(4)利用材质参数M,根据简化的Schlick BRDF反射模型,计算不同角度下不同像素点对天空背景辐射的反射量E<sub>2</sub>:<maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><msub><mi>E</mi><mn>2</mn></msub><mrow><mo>(</mo><msub><mi>θ</mi><mi>r</mi></msub><mo>,</mo><msub><mi>φ</mi><mi>r</mi></msub><mo>)</mo></mrow><mo>=</mo><msub><mi>ρ</mi><mrow><msub><mi>λ</mi><mn>1</mn></msub><mo>-</mo><msub><mi>λ</mi><mn>2</mn></msub></mrow></msub><msubsup><mo>∫</mo><mn>0</mn><mi>π</mi></msubsup><msubsup><mo>∫</mo><mn>0</mn><mfrac><mi>π</mi><mn>2</mn></mfrac></msubsup><mi>D</mi><mrow><mo>(</mo><msub><mi>θ</mi><mi>i</mi></msub><mo>,</mo><msub><mi>φ</mi><mi>i</mi></msub><mo>,</mo><msub><mi>θ</mi><mi>r</mi></msub><mo>,</mo><msub><mi>φ</mi><mi>r</mi></msub><mo>)</mo></mrow><msub><mi>L</mi><mi>s</mi></msub><mrow><mo>(</mo><msub><mi>θ</mi><mi>i</mi></msub><mo>,</mo><msub><mi>φ</mi><mi>i</mi></msub><mo>)</mo></mrow><mi>cos</mi><msub><mi>θ</mi><msup><mi>i</mi><mo>′</mo></msup></msub><mi>sin</mi><msub><mi>θ</mi><mi>i</mi></msub><mi>d</mi><msub><mi>θ</mi><mi>i</mi></msub><mi>d</mi><msub><mi>φ</mi><mi>i</mi></msub><mo>,</mo></mrow>]]></math><img file="FDA0000638118760000021.GIF" wi="1298" he="119" /></maths>其中,θ<sub>i</sub>为天顶角,<img file="FDA0000638118760000022.GIF" wi="56" he="60" />为方位角,L<sub>s</sub>(θ<sub>i</sub>,φ<sub>i</sub>)为以天顶角θ<sub>i</sub>、方位角φ<sub>i</sub>方向观察到的天空背景辐亮度,θ<sub>i'</sub>为天空背景小面元辐射入射光与表面法线的夹角,θ<sub>r</sub>为被观察面法线的天顶角,φ<sub>r</sub>为被观察面法线的方位角;(5)利用图形编程语言Cg将太阳直射辐射纹理D、天空背景辐射纹理S、大气路径辐射纹理L、大气透过率纹理T写入材质脚本的纹理单元中,在片段程序中利用太阳直射辐射的反射量E<sub>1</sub>和天空背景辐射的反射量E<sub>2</sub>,生成能仿真红外反射效应的材质脚本;(6)通过可编程图形处理单元GPU完成材质脚本的解析和编译并载入显存中,形成可编程图形处理单元GPU的执行代码,利用这些代码实时模拟红外反射效应。 |