• 2024-06-15OpenGL3.3_C++_Windows(9)
    最终效果demo演示多光源原理:所有投光物分别计算,对当前片段的影响,再+求和,渲染出物体的材质效果每个投光物:根据冯氏光照(环境,漫反射,镜面)分解计算对片段的强度影响,再与当前片段颜色值(单一颜色/纹理颜色)*相乘每个投光物也会对(环境,漫反射,镜面)有不同的影响程度通
  • 2024-06-07移动游戏的性能优化 | 材质优化篇
     材质是什么虚幻引擎是以hlsl着色语言为基础,来实现vs、ps、cs等,引擎底层提供了一套翻译系统,将hlsl翻译成gpu可执行的代码。 本篇文章限制下两个名词的定义: ● 材质:特指在虚幻引擎材质编辑界面通过连线等方式,生成的材质资源,它是蓝图系统的产物。材质资源会被转成hlsl代码
  • 2024-05-31Shader作画
    代码运行网站:http://editor.thebookofshaders.com///Author@CuriosityWang//https://www.cnblogs.com/curiositywang#ifdefGL_ESprecisionmediumpfloat;#endiffloatColA=0.028;floatRowA=0.033;uniformvec2u_resolution;uniformvec2u_mouse;uniform
  • 2024-05-30使用Shader画常见的数学函数
    使用Shader画常见的数学函数本篇博文的灵感来自于ShaderBooks这一小节:https://thebookofshaders.com/05/?lan=ch代码运行网站:http://editor.thebookofshaders.com/一次函数\[y=x+0.5\]#ifdefGL_ESprecisionmediumpfloat;#endifuniformvec2u_resolution;unifor
  • 2024-05-23shader 代码 分享:粒子的 缩放 和 位移(贝塞尔曲线控制不同粒子的位置) -- shader 绳索效果
    原始代码:shader_typeparticles;uniformintamount:hint_range(1,1000)=8;uniformfloatmax_rope_distance:hint_range(1.0,1000.0)=20.0;uniformfloatscale:hint_range(0.0,10.0)=1.0;uniformvec3start=vec3(-5.0,5.0,0.0);uniformvec3end
  • 2024-05-19ray tracing in one weekend - 5
    dielectric水、玻璃、钻石等透明材料都是电介质。当光线照射到它们身上时,它会分裂成反射光线和折射(透射)光线。我们将通过在反射和折射之间随机选择来处理这个问题,每次相互作用只产生一个散射射线。折射程度:是根据两个介质折射率的差值决定的。RefractionSnell'sLaw$$\e
  • 2024-05-17ray tracing in one weekend - 1
    thebasic#include<iostream>intmain(){//Imageintimage_width=256;intimage_height=256;//Renderstd::cout<<"P3\n"<<image_width<<''<<image_height<<"\n255
  • 2024-05-11WebGL:使用着色器进行几何造型
    前言本文将介绍如何使用着色器来进行几何造型,说到几何图形大家一定都不陌生,比如说三角形、圆形,接触过WebGL基础使用的小伙伴一定都知道怎么去在画布上绘制一个三角形,只要传入三个顶点坐标,并选择绘图模式,我们就能在WebGL的画布上画出一个三角形。但是除了这种形式之外,我们还可以
  • 2024-04-08osg 标准视图、前视图、侧视图、顶视图切换
      #include<osg/Node>#include<osg/Geode>#include<osg/ShapeDrawable>#include<osgViewer/Viewer>#include<osgGA/GUIEventHandler>//自定义的视图切换事件处理器classViewSwitchHandler:publicosgGA::GUIEventHandler{public:V
  • 2024-04-08第六个OpenGL程序,Coordinate Systems 坐标系统 后续之 3D 3
    效果: 代码main.cpp:#include<iostream>#include<glad/glad.h>#include<glfw3.h>#include"Shader.h"#defineSTB_IMAGE_IMPLEMENTATION#include<stb_image.h>#include<glm/glm.hpp>#include<glm/gtc/matrix_transfo
  • 2024-04-07第四个OpenGL程序,vector 向量 (矩阵变换之 旋转,缩放)后续 绘制多个 图形
    效果: 代码main.cpp#include<iostream>#include<glad/glad.h>#include<glfw3.h>#include"Shader.h"#defineSTB_IMAGE_IMPLEMENTATION#include<stb_image.h>#include<glm/glm.hpp>#include<glm/gtc/matrix_transfo
  • 2024-04-04第三个OpenGL程序,shaders _ 后续 之 moreAttribute (设置顶点位置属性 颜色位置属性),从顶点数据中传入顶点数据,顶点颜色
    效果: 代码main.cpp#include<iostream>#include<glad/glad.h>#include<glfw3.h>#include<math.h>usingnamespacestd;//回调函数,每当窗口改变大小,视口大小也跟随改变voidframebuffer_size_callback(GLFWwindow*window,intwidth,intheight){glV
  • 2024-04-02vscode shadertoy插件,非常方便的glsl着色器编写工具
    很著名的shadertoy网站,集合了非常多大神利用数学写出美妙的shader效果。像shadertoy创始人之一的IQ大神它在这方面有很多的建树。他的利用光线步进和躁声可以创建很多不可思议的3D场景。 vscode有一件shadertoy的插件,安装后可以新建一个*.glsl文件,写好代码就可以直接运行看效
  • 2024-03-27vector初始化
    1.一维初始化//无参初始化vector<int>vec1;//长度为10vector<int>vec2(10);//长度为10,且初始化为1vector<int>vec3(10,0);2.二维数组初始化//无参初始化vector<vector<int>>vec1;//确认行数vector<vector<int>>vec2(3);//确认行数、列数:三行四列vecto
  • 2024-02-02luminance
    -------------------------------//ApproximatesthebrightnessofaRGBvalue.floatluminance(vec3color){returndot(lum,color);}---------------------------intsize=width*height;std::vector<GLfloat>texData(size*3);glActiveTexture(GL_
  • 2024-01-22Kulla-Conty BRDF
    question:brdf中的几何因子考虑了微表面的自遮挡,当表面粗糙度较大或者与法线夹角越大时,这个因子越小,导致颜色越暗。这部分能量相等于直接忽略掉了,实际上被遮挡的光线会被反射,然后经过若干次反射,从另一点以另一角度重新进入视线。因此需要将缺失的能量重新补回来。Kulla-Conty
  • 2024-01-22ssr屏幕空间射线追踪
    本轮作业中,我们需要在一个光源为方向光,材质为漫反射(Diffuse)的场景中,完成屏幕空间下的全局光照效果(两次反射)。为了在作业框架中实现上述效果,基于我们需要的信息不同我们会分三阶段着色,每个阶段都有相对应的任务。第一次着色负责计算ShadowMap所需的深度值并保存到贴
  • 2024-01-20基于物理的渲染(3):OSG中PBR实践
    1.1单光源直接光照voidmain(){ //创建小球几何 osg::ref_ptr<osg::ShapeDrawable>sphere=newosg::ShapeDrawable; sphere->setShape(newosg::Sphere(osg::Vec3(0,0,0),radius)); sphere->setColor(osg::Vec4(col)); //创建小球节点 osg::ref_ptr<osg::Geode>pbr
  • 2024-01-15浪漫3D樱花漫天飞舞特效+个人引导页特效+爱心特效
    1.源码描述使用html+css+js制作浪漫3D樱花漫天飞舞效果非常炫酷,非常美丽的HTML53D樱花漫天飞舞效果js代码,整个屏幕飘满了樱花,而且姿态各异,近大远小。在最新版火狐和谷歌皆可以看到效果,但是注意可能会比较占用CPU哦!作为网站的背景也是非常漂亮的。2.源码技术html5+cs
  • 2023-12-31Cocos Creator 3.x之旋转基础
    一,场景设计二,整体场景效果三,QuatView.ts代码import{_decorator,Component,EventTouch,Input,input,Node,Quat,v3,Vec3,Vec2}from"cc";const{ccclass,property}=_decorator;@ccclass("QuatView")exportclassQuatViewextendsComponent{
  • 2023-12-26reproduce-ray-tracing-in-one-weekend
    reproduce-ray-tracing-in-one-weekendCreated:2023-12-24T22:08+08:00Published:2023-12-26T09:38+08:00Categories:ComputerGraphics成像模型:vec3,rayimage和viewport大小几何约定,up-y,right-x,back-zcamera和viewport中的各个点和向量viewport
  • 2023-11-28里海NX二次开发3000例-专栏目录
    网友提问序号问题方法01在大的图档中设置所有图层的状态比较慢,怎么解决链接02已知一个原点和另一个点相对于原点的角度和距离,如何求出另一个点的位置?链接03怎么获取一个图层的图层类别?链接界面相关序号内容链接01BlockUI界面链接02单按钮模态消息对话框
  • 2023-11-03Qt3D改变观察视角例程(二)
    本例依旧是改变3D视角。不同的是这个是视野位置不变而只改变观察方向。相当于一个人站在原地不动,旋转脑袋看周围的东西。测试的条件是VS2017和Qt5.9。主要的知识点就是欧拉角的计算。下面是效果图:头文件:classQOpenGLTexture;classQOpenGLBuffer;classMvOpenGLWidget:p
  • 2023-10-25引用C++程序,在DOS命令行打印彩色玫瑰花
    python代码:fromctypesimport*importpygameimportrandomimportstringimporttimeif__name__=='__main__':withopen('log.txt','rb')asf:lines=f.readlines()count=0forlineinlines:
  • 2023-10-08OpenGL——着色器设置绘制对象颜色及透明度
     {https://blog.csdn.net/weixin_46568899/article/details/129217018} {。着色器的编写结构如下:1.声明版本(很重要,版本不对的话会得到不同的绘制结果)。2.使用location指定输入变量。3.定义输入输出变量(用in和out关键字)。4.main函数。以下是一个简单的例子:   constcha