小编OMH*_*OMH的帖子

光线追踪 - 如何结合漫反射和镜面反射颜色?

我一直在阅读有关光线追踪和阴影的大量文章,但我的光线追踪图像看起来并不太好.我在谈论镜面高光附近非常明亮的绿色区域.结果绿色在这里最大化,看起来像.如何调整颜色和/或阴影计算以使其看起来正确?

(别担心愚蠢的代码,我只是想先把原则弄清楚).

以下是它的外观:

在此输入图像描述

这里只是漫反射组件:

在此输入图像描述

这是仅镜面反射分量:

在此输入图像描述

编辑:将漫反射更改为颜色diffuseColor = ColorMake(0.0f,0.6f,0.0f); 然后图像看起来像这样:

在此输入图像描述

Point lightPosition = PointMake(-100.0f, 100.0f, -100.0f);
Color diffuseColor  = ColorMake(0.0f, 1.0f, 0.0f);
Color specularColor = ColorMake(1.0f, 1.0f, 1.0f);
Color pixelColor    = ColorMake(0.0f, 0.0f, 0.0f);

//  Trace...

            // Diffuse
            Point intersectionPosition = PointMake(x, y, z);
            Vector intersectionNormal = VectorMake((x - xs) / rs, (y - ys) / rs, (z - zs) / rs);
            Vector intersectionNormalN = VectorNormalize(intersectionNormal);
            Vector lightVector          = VectorSubtract(lightPosition, intersectionPosition);
            VectorlightVectorN         = VectorNormalize(lightVector);
            float      cosTheta        = VectorDotProduct(intersectionNormalN, lightVectorN);
            if (cosTheta …
Run Code Online (Sandbox Code Playgroud)

3d graphics raytracing

10
推荐指数
2
解决办法
8291
查看次数

如何在Objective C中对齐内存?

Apple建议您在使用Accelerate Framework时将数据对齐16字节.你在实践中如何做到这一点?

如果我有阵列int[10000];,有pragma吗?如何将其与16字节对齐?

objective-c ios accelerate-framework

7
推荐指数
1
解决办法
907
查看次数

在iPhone上播放midi文件

是否可以通过某些API直接播放.mid文件,或者必须先将midi文件转换为例如AAC?

iphone xcode

2
推荐指数
1
解决办法
2507
查看次数