光照效果

private const float BRIGHTNESS = 220.0F; Graphics g = this.pictureBox2.CreateGraphics();
            g.Clear(Color.White);
            Bitmap bmp = new Bitmap(this.pictureBox1.Image);
            int width = bmp.Width;
            int height = bmp.Height;

            Bitmap tmp = bmp.Clone(new RectangleF(0, 0, width, height), System.Drawing.Imaging.PixelFormat.DontCare);

            //发亮点右上角 此值会让强光中心发生偏移
            Point lightP = new Point(width - 40, height / 4);
            //R强光照射面的半径,即”光晕”
            int radius = Math.Min(width / 2 + 60, height / 2 + 60);

            for (int i = 1; i < width; i++)
                for (int j = 1; j < height; j++)
                {
                    float length = (float)Math.Sqrt(Math.Pow((i - lightP.X), 2) + Math.Pow((j - lightP.Y), 2));
                    //如果像素位于”光晕”之内
                    if (length < radius)
                    {
                        Color C = tmp.GetPixel(i, j);
                        int rV, gV, bV;
                        //亮度增加常量,该值越大,光亮度越强
                        float pixel = BRIGHTNESS * (1.0f - (length / radius));
                        rV = C.R + (int)pixel;
                        rV = Math.Max(0, Math.Min(rV, 255));
                        gV = C.G + (int)pixel;
                        gV = Math.Max(0, Math.Min(gV, 255));
                        bV = C.B + (int)pixel;
                        bV = Math.Max(0, Math.Min(bV, 255));
                        //将增亮后的像素值回写到位图
                        Color newC = Color.FromArgb(255, rV, gV, bV);
                        tmp.SetPixel(i, j, newC);
                    }
                }
            g.DrawImage(tmp, pictureBox2.ClientRectangle);// new Rectangle(0, 0, width, height));        g.Dispose();

时间: 2024-08-30 01:35:49

光照效果的相关文章

[WebGL入门]二十三,反射光的光照效果

注:文章译自http://wgld.org/,原作者杉本雅広(doxas),文章中如果有我的额外说明,我会加上[lufy:],另外,鄙人webgl研究还不够深入,一些专业词语,如果翻译有误,欢迎大家指正. 本次的demo的运行结果 各种各样的光照 上次,以及上上次,介绍了通过顶点着色器来实现光照效果. 最开始介绍了从平行光源发出的光,上次介绍了平行光源的缺点,以及对应这个缺点的方法,就是环境光源. 这次是光照处理的第三篇,进一步介绍反射光照. 反射光和它的名字一样,就是模拟光的反射.通过反射光,

OpenGL ES 光照效果

一个立方体 光照模型 环境光 散射光 镜面光 为了演示光照效果,在前面学习过的内容基础上我们首先创建一个立方体,同时为了看起来直观一些,这个立方体每个面采用中心为白色,周围红色的渐变方案,不然看上去同样的颜色混在一起,看不出来是否是立方体.并且添加上转动旋转功能,这样转动起来立体感更强一些. 一个立方体 立方体类Rectangle.java public class Rectangle { private FloatBuffer mVertexBuffer; private int mProgr

【转】五、android图片特效处理之光照效果

这篇将讲到图片特效处理的光照效果.跟前面一样是对像素点进行处理,算法是通用的. 算法原理:图片上面的像素点按照给定圆心,按照圆半径的变化,像素点的RGB值分别加上相应的值作为当前点的RGB值. 例: ABCDE FGHIJ KLMNO 如果指定H点为光照效果的中心,半径为两个像素点,那么G点RGB值分别加上的值会比F点的要大,因为RGB值越大,就越接近白色,所以G点看起来比F点要白,也就是距光照中心越近,看效果图: 原图: 处理后: 代码: http://wenku.baidu.com/link

android图片特效处理之光照效果

这篇将讲到图片特效处理的光照效果.跟前面一样是对像素点进行处理,算法是通用的. 算法原理:图片上面的像素点按照给定圆心,按照圆半径的变化,像素点的RGB值分别加上相应的值作为当前点的RGB值. 例: ABCDE FGHIJ KLMNO 如果指定H点为光照效果的中心,半径为两个像素点,那么G点RGB值分别加上的值会比F点的要大,因为RGB值越大,就越接近白色,所以G点看起来比F点要白,也就是距光照中心越近,看效果图: 原图: 处理后: 代码: 光照强度值strength可以按照想要的效果试着改.

Vuforia结合Skyshop: Image-Based Lighting Tools &amp; Shaders插件实现真实的光照效果

Skyshop: Image-Based Lighting Tools & Shaders 插件地址:https://www.assetstore.unity3d.com/en/#!/content/8880 相关使用教程:http://www.narkii.com/club/thread-300367-1.html http://blog.sina.com.cn/s/blog_6364792d0102uys6.html 这些基本上都是使用了HDRI 高动态范围图像 作为场景中的天空实现天空的光

光照效果函数

// 光照效果函数 public static Bitmap changeToLight(Bitmap bitmap) { int width = bitmap.getWidth(); int height = bitmap.getHeight(); int pixColor = 0; int R = 0; int G = 0; int B = 0; int centerX = width /3; int centerY = height / 3; int radius = Math.min(c

OpenGL ES着色语言-光照效果之散射光

OpenGL光照模型,在固定管线中,主要是调用OpenGL函数实现,如果使用着色器,该怎么实现.本文的例子是移植OpenGL 4.0 Shading Language Cookbook中第二章的例子.代码已经移植到Android上. 散射光计算主要涉及到两个向量,第一个是顶点到光源的向量S,以及顶点处的法向量N.光照计算在眼睛坐标中进行.具体见下图所示: 有这两个向量之后,还要考虑顶点处的漫反射系数以及光源强度,最终顶点处的光照强度的结果可以通过下列公式计算: Ld为光源强度,Kd为漫反射系数.

OpenGL之路(八)添加光照效果和键盘控制

在opengl中添加光照的效果,可用键盘控制放大缩小 w键放大 s键缩小 d键开关灯 预览效果如下: 源码如下: #include <gl/glut.h> #include <gl/glaux.h> #include <stdio.h> #pragma comment(lib, "opengl32.lib") #pragma comment(lib, "glut32.lib") #pragma comment(lib, "

Unity2D实现贴图凹凸感并接受实时光照效果

先看终于效果: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" > 我们的原图是一个3D模型的截图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/7