首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏txp玩Linux

    C语言0长度数组(可变数组/柔性数组)详解

    = NULL) { zbuffer->len = CURR_LENGTH; memcpy(zbuffer->data, "Hello World", CURR_LENGTH ); printf("%d, %s\n", zbuffer->len, zbuffer->data); } 释放空间:释放空间也是一样的, 一次释放即可 /// 销毁 free(zbuffer); zbuffer = NULL; 总结: // zero_length_array.c #include <stdio.h> #include <stdlib.h = NULL) { zbuffer->len = CURR_LENGTH; memcpy(zbuffer->data, "Hello World", CURR_LENGTH ); printf("%d, %s\n", zbuffer->len, zbuffer->data); } /// 销毁 free(zbuffer);

    7.1K10编辑于 2022-06-09
  • 来自专栏全栈程序员必看

    玫瑰花(C语言代码)

    *zBuffer; int x, y, z, zBufferIndex; DOT dot; initgraph(640,480);//创建绘图窗口 /*添加音乐*/ mciSendString NULL, 0, NULL); mciSendString("play BAdApple", NULL, 0, NULL); setbkcolor(YELLOW); cleardevice(); zBuffer = new short[rosesize * rosesize]; memset(zBuffer, 0, sizeof(short) * rosesize * rosesize); for (int zBuffer[zBufferIndex] || zBuffer[zBufferIndex] > z) { zBuffer[zBufferIndex] = z; //画点 int b > 255)b = 255; putpixel(x + 50, y - 20, RGB(r, g, b)); } } Sleep(100); } delete[]zBuffer

    15.3K30编辑于 2022-09-17
  • 来自专栏超级码力

    【十天自制软渲染器】DAY 04:Z-buffering

    [x,y]) // 如果深度大于已有的值, framebuffer[x,y] = rgb; // 则更新颜色, zbuffer[x,y] = z; // 并更新 zbuffer else // do nothing // 小于已有的值,就说明这个像素点被遮挡不需要绘制了 , => 4, 5, 6, // [7, 8, 9]] 7, 8, 9], 定义好结构后,我们给 Z-buffering 的每个子元素都赋上 -∞ 的默认值: float *zbuffer = 0; i < 3; i++) { P.z += pts[i][2] * bc_screen[i]; } // 更新总的 zbuffer 并绘制 if(zbuffer[int(P.x + P.y * width)] < P.z) { zbuffer[int(P.x + P.y * width)]

    1.1K20发布于 2021-03-03
  • 来自专栏全栈程序员必看

    D3D API – D3DXCreateRenderToSurface渲染到纹理

    ; g_pRTS->BeginScene(g_pSurface, &vp); g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER g_pRTS->EndScene(D3DX_FILTER_NONE); g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER (g_pSurface, & vp); g_pd3dDevice -> Clear( 0 , NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER EndScene(D3DX_FILTER_NONE); g_pd3dDevice -> Clear( 0 , NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER

    83520编辑于 2022-07-05
  • 来自专栏小L的魔法馆

    Computer Graphics note(3):视口变换&光栅化

    buffer to ∞ During rasterization: for (each triangle T) for (each sample (x,y,z) in T) if (z < zbuffer [x,y]) // closest sample so far framebuffer[x,y] = rgb; // update color zbuffer[x,y] = z; // 比较每个像素当前所记录的深度zbuffer[x,y]zbuffer[x,y]zbuffer[x,y]和新三角形对应的深度zzz,如果当前的深度更大,说明距离更远,新三角形会将其覆盖,则进行更新,反之则什么也不做

    1.4K21发布于 2020-08-02
  • 来自专栏若尘的技术专栏

    Unity Shader

    执行片元着色器,计算这个片元的颜色 color = frag_shader(v2f[k]); // 取出深度缓冲对应坐标的深度值 currentZ = zBuffer currentZ) { colorBuffer[x][y] = color; if (zwrite == true) { zBuffer ] = dstColor_new; // 深度写入 if (ZWrite == true) { zBuffer

    3.8K65编辑于 2021-11-26
  • 来自专栏重归混沌

    地形渲染之爬过的坑

    这同样会增加Overdraw, 而且大概猜测一下,半透明渲染渲染由于不会写zbuffer, 所以在渲染之前可能还需要类似画家算法一样进行排序,这同样是开销。 其中normalmap纹理是用作增加地形细节的,比如有一座高山,我们的Mesh三角形很大,如果仅凭zbuffer, 很多明暗细节就表现不出来,这时就需要靠这张normalmap来达到逼真的效果。

    1.2K10发布于 2020-12-29
  • 来自专栏PostgreSQL研究与原理解析

    XLOG段文件跳号现象分析

    = ENOENT) (gdb) p fd $2 = -1 (gdb) p errno $3 = 2 3、创建并打开临时文件,将zbuffer.data清0,然后一页一页的将文件清0 3243 snprintf BasicOpenFile(tmppath, O_RDWR | O_CREAT | O_EXCL | PG_BINARY); (gdb) 3249 if (fd < 0) (gdb) 3254 memset(zbuffer.data wal_segment_size; nbytes += XLOG_BLCKSZ) (gdb) 3271 errno = 0; (gdb) 3272 if (write(fd, zbuffer.data

    70320发布于 2020-10-28
  • 来自专栏花落的技术专栏

    Unity Shader

    执行片元着色器,计算这个片元的颜色 color = frag_shader(v2f[k]); // 取出深度缓冲对应坐标的深度值 currentZ = zBuffer currentZ) { colorBuffer[x][y] = color; if (zwrite == true) { zBuffer ] = dstColor_new; // 深度写入 if (ZWrite == true) { zBuffer

    3K20编辑于 2021-12-06
  • 来自专栏AutoML(自动机器学习)

    【GAMES101-现代计算机图形学课程笔记】Lecture 07 Shading 1 (Illumination, Shading and Graphics Pipeline)

    buffer to ∞ During rasterization: for (each triangle T) for (each sample (x,y,z) in T) if (z < zbuffer [x,y]) // closest sample so far framebuffer[x,y] = rgb; // update color zbuffer[x,y] = z;

    2K30发布于 2020-06-12
  • 来自专栏小L的魔法馆

    Computer Graphics note(3):视图变换 & 光栅化

    buffer to ∞ During rasterization: for (each triangle T) for (each sample (x,y,z) in T) if (z < zbuffer [x,y]) // closest sample so far framebuffer[x,y] = rgb; // update color zbuffer[x,y] = z; //

    1.1K20发布于 2020-06-29
  • 来自专栏KAAAsS's Blog

    在ESP32上移植OpenGL实现(一)

    通过coredump发现是内部绘制用zbuffer的像素buffer没有成功分配……后来发现,Arduino的ESP32环境下似乎不能一次性分配太大的内存???

    3.3K10编辑于 2022-01-14
  • 来自专栏tkokof 的技术,小趣及杂念

    疑难杂症小记

    便如期而至了~ image.png   但是目前虽然确定了所有顶点都会被渲染,但是各个顶点间的渲染顺序还不能确定,普通渲染一般都会打开ZWrite,那么这时的渲染顺序其实并不重要,因为最终的绘制顺序会由ZBuffer

    48020发布于 2018-08-02
  • ImGUI 1.87 绘制D3D外部菜单

    SetRenderState(D3DRS_SCISSORTESTENABLE, FALSE); g_pd3dDevice->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER SetRenderState(D3DRS_SCISSORTESTENABLE, FALSE); g_pd3dDevice->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER

    2K20编辑于 2022-12-28
  • 来自专栏逍遥剑客的游戏开发

    一些VR延迟优化方法

    这就是Timewarp的主要思想, 我们来看看它是怎么实现的 Timewarp 了解过延迟渲染的人应该都知道, 我们可以利用ZBuffer的深度数据, 逆向推导出屏幕上每个像素的世界坐标 这就意味着

    1.8K70发布于 2018-05-21
  • 来自专栏大学生计算机视觉学习DeepLearning

    OpenCASCADE(一) VS2017+OpenCASCADE+MFC 下载配置安装运行单文档程序画个基本图形

    Quantity_NOC_BLUE1, 0.8, 0.05, 12); myView->TriedronDisplay(Aspect_TOTP_LEFT_LOWER, Quantity_NOC_WHITE, 0.2, V3d_ZBUFFER

    3.8K11发布于 2020-03-02
  • 来自专栏简易现代魔法

    图形学入门(二):光栅化

    ,并将当前的深度值记录在 z buffer 中: foreach (triangle t in scene) foreach (sample (x, y, z) in t) if z < zbuffer [x, y] framebuffer[x, y] = newcolor zbuffer[x, y] = z Z buffer 中记录的数据在归一化后可以被看作一个灰度的颜色值,我们可以直接将这个数据渲染出来

    4.9K51发布于 2021-08-10
  • 来自专栏全栈程序员必看

    matlab的三维绘图和四维绘图「建议收藏」

    ([1,1,1]) camva(24); camproj perspective; campos([-3,-15,5]) set(gcf,'Color',[.5,.5,.5],'Renderer','zbuffer

    8.1K32编辑于 2022-11-10
  • 来自专栏我的技术专栏

    UnityShader 表面着色器简单例程集合

    Zbuffer off 细心的同学已经发现了,在ball1的shader中有一个语句: ZWrite Off 这句话的意思是关闭写入深度缓存,即不把ball1的深入值写入深度缓存中,深入缓存的写入以及深度测试才是决定物体是否遮挡的决定性因素

    3.7K61发布于 2018-07-02
领券