cesium中内置了一些常量、变量和函数,在vs和fs中可直接使用。

内置uniform

内置uniform主要置于AutomaticUniforms类里面,该类私有未开放文档。

  • czm_backgroundColor

An automatic GLSL uniform representing the current scene background color.

Example:
// GLSL declaration
uniform vec4 czm_backgroundColor;
// Example: If the given color's RGB matches the background color, invert it.
vec4 adjustColorForContrast(vec4 color)
{
if (czm_backgroundColor.rgb == color.rgb)
{
color.rgb = vec3(1.0) - color.rgb;
}
return color;
}
  • czm_brdfLut

An automatic GLSL uniform containing the BRDF look up texture used for image-based lighting computations.

Example:
// GLSL declaration
uniform sampler2D czm_brdfLut;
// Example: For a given roughness and NdotV value, find the material's BRDF information in the red and green channels
float roughness = 0.5;
float NdotV = dot(normal, view);
vec2 brdfLut = texture2D(czm_brdfLut, vec2(NdotV, 1.0 - roughness)).rg;

An automatic GLSL uniform containing the near distance (x) and the far distance (y) of the frustum defined by the camera. This is the individual frustum used for multi-frustum rendering.

Example:
// GLSL declaration
uniform vec2 czm_currentFrustum;
// Example
float frustumLength = czm_currentFrustum.y - czm_currentFrustum.x;

An automatic GLSL uniform representing the high bits of the camera position in model coordinates. This is used for GPU RTE to eliminate jittering artifacts when rendering as described in Precisions, Precisions.

Example:
// GLSL declaration
uniform vec3 czm_encodedCameraPositionMCHigh;

An automatic GLSL uniform representing the low bits of the camera position in model coordinates. This is used for GPU RTE to eliminate jittering artifacts when rendering as described in Precisions, Precisions.

Example:
// GLSL declaration
uniform vec3 czm_encodedCameraPositionMCLow;

An automatic GLSL uniform containing the near distance (x) and the far distance (y) of the frustum defined by the camera. This is the largest possible frustum, not an individual frustum used for multi-frustum rendering.

Example:
// GLSL declaration
uniform vec2 czm_entireFrustum;
// Example
float frustumLength = czm_entireFrustum.y - czm_entireFrustum.x;
  • czm_environmentMap

An automatic GLSL uniform containing the environment map used within the scene.

Example:
// GLSL declaration
uniform samplerCube czm_environmentMap;
// Example: Create a perfect reflection of the environment map on a model
float reflected = reflect(view, normal);
vec4 reflectedColor = textureCube(czm_environmentMap, reflected);

An automatic GLSL uniform containing height (x) and height squared (y) of the eye (camera) in the 2D scene in meters.

  • czm_fogDensity

An automatic GLSL uniform scalar used to mix a color with the fog color based on the distance to the camera.

An automatic GLSL uniform representing the frame number. This uniform is automatically incremented every frame.

  • czm_frustumPlanes

The distances to the frustum planes. The top, bottom, left and right distances are the x, y, z, and w components, respectively.

  • czm_geometricToleranceOverMeter

An automatic GLSL uniform scalar representing the geometric tolerance per meter

  • czm_imagerySplitPosition

An automatic GLSL uniform representing the splitter position to use when rendering imagery layers with a splitter. This will be in pixel coordinates relative to the canvas.

An automatic GLSL uniform representing a 4x4 projection transformation matrix with the far plane at infinity, that transforms eye coordinates to clip coordinates. Clip coordinates is the coordinate system for a vertex shader's gl_Position output. An infinite far plane is used in algorithms like shadow volumes and GPU ray casting with proxy geometry to ensure that triangles are not clipped by the far plane.

Example:
// GLSL declaration
uniform mat4 czm_infiniteProjection;
// Example
gl_Position = czm_infiniteProjection * eyePosition;

An automatic GLSL uniform representing a 4x4 model transformation matrix that transforms world coordinates to model coordinates.

Example:
// GLSL declaration
uniform mat4 czm_inverseModel;
// Example
vec4 modelPosition = czm_inverseModel * worldPosition;

An automatic GLSL uniform representing a 4x4 transformation matrix that transforms from eye coordinates to model coordinates.

Example:
// GLSL declaration
uniform mat4 czm_inverseModelView;
// Example
vec4 modelPosition = czm_inverseModelView * eyePosition;

An automatic GLSL uniform representing a 4x4 transformation matrix that transforms from eye coordinates to 3D model coordinates. In 3D mode, this is identical to czm_inverseModelView, but in 2D and Columbus View it represents the inverse model-view matrix as if the camera were at an equivalent location in 3D mode. This is useful for lighting 2D and Columbus View in the same way that 3D is lit.

Example:
// GLSL declaration
uniform mat4 czm_inverseModelView3D;
// Example
vec4 modelPosition = czm_inverseModelView3D * eyePosition;

An automatic GLSL uniform representing a 4x4 inverse model-view-projection transformation matrix that transforms clip coordinates to model coordinates. Clip coordinates is the coordinate system for a vertex shader's gl_Position output.

Example:
// GLSL declaration
uniform mat4 czm_inverseModelViewProjection;
// Example
vec4 modelPosition = czm_inverseModelViewProjection * clipPosition;

An automatic GLSL uniform representing a 3x3 normal transformation matrix that transforms normal vectors in eye coordinates to model coordinates. This is the opposite of the transform provided by czm_normal.

Example:
// GLSL declaration
uniform mat3 czm_inverseNormal;
// Example
vec3 normalMC = czm_inverseNormal * normalEC;

An automatic GLSL uniform representing a 3x3 normal transformation matrix that transforms normal vectors in eye coordinates to 3D model coordinates. This is the opposite of the transform provided by czm_normal. In 3D mode, this is identical to czm_inverseNormal, but in 2D and Columbus View it represents the inverse normal transformation matrix as if the camera were at an equivalent location in 3D mode. This is useful for lighting 2D and Columbus View in the same way that 3D is lit.

Example:
// GLSL declaration
uniform mat3 czm_inverseNormal3D;
// Example
vec3 normalMC = czm_inverseNormal3D * normalEC;

An automatic GLSL uniform representing a 4x4 inverse projection transformation matrix that transforms from clip coordinates to eye coordinates. Clip coordinates is the coordinate system for a vertex shader's gl_Position output.

Example:
// GLSL declaration
uniform mat4 czm_inverseProjection;
// Example
vec4 eyePosition = czm_inverseProjection * clipPosition;

An automatic GLSL uniform representing a 4x4 transformation matrix that transforms from eye coordinates to world coordinates.

Example:
// GLSL declaration
uniform mat4 czm_inverseView;
// Example
vec4 worldPosition = czm_inverseView * eyePosition;

An automatic GLSL uniform representing a 4x4 transformation matrix that transforms from 3D eye coordinates to world coordinates. In 3D mode, this is identical to czm_inverseView, but in 2D and Columbus View it represents the inverse view matrix as if the camera were at an equivalent location in 3D mode. This is useful for lighting 2D and Columbus View in the same way that 3D is lit.

Example:
// GLSL declaration
uniform mat4 czm_inverseView3D;
// Example
vec4 worldPosition = czm_inverseView3D * eyePosition;

An automatic GLSL uniform representing a 4x4 view-projection transformation matrix that transforms clip coordinates to world coordinates. Clip coordinates is the coordinate system for a vertex shader's gl_Position output.

Example:
// GLSL declaration
uniform mat4 czm_inverseViewProjection;
// Example
vec4 worldPosition = czm_inverseViewProjection * clipPosition;

An automatic GLSL uniform representing a 3x3 rotation matrix that transforms vectors from eye coordinates to world coordinates.

Example:
// GLSL declaration
uniform mat3 czm_inverseViewRotation;
// Example
vec4 worldVector = czm_inverseViewRotation * eyeVector;

An automatic GLSL uniform representing a 3x3 rotation matrix that transforms vectors from 3D eye coordinates to world coordinates. In 3D mode, this is identical to czm_inverseViewRotation, but in 2D and Columbus View it represents the inverse view matrix as if the camera were at an equivalent location in 3D mode. This is useful for lighting 2D and Columbus View in the same way that 3D is lit.

Example:
// GLSL declaration
uniform mat3 czm_inverseViewRotation3D;
// Example
vec4 worldVector = czm_inverseViewRotation3D * eyeVector;
  • czm_invertClassificationColor

An automatic GLSL uniform that will be the highlight color of unclassified 3D Tiles.

  • czm_log2FarPlusOne

An automatic GLSL uniform containing log2 of the far distance + 1.0. This is used when reversing log depth computations.

  • czm_log2NearDistance

An automatic GLSL uniform containing log2 of the near distance. This is used when writing log depth in the fragment shader.

  • czm_minimumDisableDepthTestDistance

An automatic GLSL uniform representing the distance from the camera at which to disable the depth test of billboards, labels and points to, for example, prevent clipping against terrain. When set to zero, the depth test should always be applied. When less than zero, the depth test should never be applied.

An automatic GLSL uniform representing a 4x4 model transformation matrix that transforms model coordinates to world coordinates.

Example:
// GLSL declaration
uniform mat4 czm_model;
// Example
vec4 worldPosition = czm_model * modelPosition;

An automatic GLSL uniform representing a 4x4 model-view transformation matrix that transforms model coordinates to eye coordinates.

Positions should be transformed to eye coordinates using czm_modelView and normals should be transformed using czm_normal.

Example:
// GLSL declaration
uniform mat4 czm_modelView;
// Example
vec4 eyePosition = czm_modelView * modelPosition;
// The above is equivalent to, but more efficient than:
vec4 eyePosition = czm_view * czm_model * modelPosition;

An automatic GLSL uniform representing a 4x4 model-view transformation matrix that transforms 3D model coordinates to eye coordinates. In 3D mode, this is identical to czm_modelView, but in 2D and Columbus View it represents the model-view matrix as if the camera were at an equivalent location in 3D mode. This is useful for lighting 2D and Columbus View in the same way that 3D is lit.

Positions should be transformed to eye coordinates using czm_modelView3D and normals should be transformed using czm_normal3D.

Example:
// GLSL declaration
uniform mat4 czm_modelView3D;
// Example
vec4 eyePosition = czm_modelView3D * modelPosition;
// The above is equivalent to, but more efficient than:
vec4 eyePosition = czm_view3D * czm_model * modelPosition;

An automatic GLSL uniform representing a 4x4 model-view-projection transformation matrix that transforms model coordinates to clip coordinates. Clip coordinates is the coordinate system for a vertex shader's gl_Position output. The projection matrix places the far plane at infinity. This is useful in algorithms like shadow volumes and GPU ray casting with proxy geometry to ensure that triangles are not clipped by the far plane.

Example:
// GLSL declaration
uniform mat4 czm_modelViewInfiniteProjection;
// Example
vec4 gl_Position = czm_modelViewInfiniteProjection * modelPosition;
// The above is equivalent to, but more efficient than:
gl_Position = czm_infiniteProjection * czm_view * czm_model * modelPosition;

An automatic GLSL uniform representing a 4x4 model-view-projection transformation matrix that transforms model coordinates to clip coordinates. Clip coordinates is the coordinate system for a vertex shader's gl_Position output.

Example:
// GLSL declaration
uniform mat4 czm_modelViewProjection;
// Example
vec4 gl_Position = czm_modelViewProjection * modelPosition;
// The above is equivalent to, but more efficient than:
gl_Position = czm_projection * czm_view * czm_model * modelPosition;

An automatic GLSL uniform representing a 4x4 model-view-projection transformation matrix that transforms model coordinates, relative to the eye, to clip coordinates. Clip coordinates is the coordinate system for a vertex shader's gl_Position output. This is used in conjunction with czm_translateRelativeToEye.

Example:
// GLSL declaration
uniform mat4 czm_modelViewProjectionRelativeToEye;
// Example
attribute vec3 positionHigh;
attribute vec3 positionLow;
void main()
{
vec4 p = czm_translateRelativeToEye(positionHigh, positionLow);
gl_Position = czm_modelViewProjectionRelativeToEye * p;
}

An automatic GLSL uniform representing a 4x4 model-view transformation matrix that transforms model coordinates, relative to the eye, to eye coordinates. This is used in conjunction with czm_translateRelativeToEye.

Example:
// GLSL declaration
uniform mat4 czm_modelViewRelativeToEye;
// Example
attribute vec3 positionHigh;
attribute vec3 positionLow;
void main()
{
vec4 p = czm_translateRelativeToEye(positionHigh, positionLow);
gl_Position = czm_projection * (czm_modelViewRelativeToEye * p);
}

An automatic GLSL uniform representing the normalized direction to the moon in eye coordinates. This is commonly used for directional lighting computations.

Example:
// GLSL declaration
uniform vec3 czm_moonDirectionEC;
// Example
float diffuse = max(dot(czm_moonDirectionEC, normalEC), 0.0);

An automatic GLSL uniform representing the current morph transition time between 2D/Columbus View and 3D, with 0.0 being 2D or Columbus View and 1.0 being 3D.

Example:
// GLSL declaration
uniform float czm_morphTime;
// Example
vec4 p = czm_columbusViewMorph(position2D, position3D, czm_morphTime);

An automatic GLSL uniform representing a 3x3 normal transformation matrix that transforms normal vectors in model coordinates to eye coordinates.

Positions should be transformed to eye coordinates using czm_modelView and normals should be transformed using czm_normal.

Example:
// GLSL declaration
uniform mat3 czm_normal;
// Example
vec3 eyeNormal = czm_normal * normal;

An automatic GLSL uniform representing a 3x3 normal transformation matrix that transforms normal vectors in 3D model coordinates to eye coordinates. In 3D mode, this is identical to czm_normal, but in 2D and Columbus View it represents the normal transformation matrix as if the camera were at an equivalent location in 3D mode. This is useful for lighting 2D and Columbus View in the same way that 3D is lit.

Positions should be transformed to eye coordinates using czm_modelView3D and normals should be transformed using czm_normal3D.

Example:
// GLSL declaration
uniform mat3 czm_normal3D;
// Example
vec3 eyeNormal = czm_normal3D * normal;
  • czm_orthographicIn3D

An automatic GLSL uniform that indicates if the current camera is orthographic in 3D.

  • czm_pass

An automatic GLSL uniform representing the current rendering pass.

Example:
// GLSL declaration
uniform float czm_pass;
// Example
if ((czm_pass == czm_passTranslucent) && isOpaque())
{
gl_Position *= 0.0; // Cull opaque geometry in the translucent pass
}

An automatic GLSL uniform representing a 4x4 projection transformation matrix that transforms eye coordinates to clip coordinates. Clip coordinates is the coordinate system for a vertex shader's gl_Position output.

Example:
// GLSL declaration
uniform mat4 czm_projection;
// Example
gl_Position = czm_projection * eyePosition;
  • czm_resolutionScale

An automatic GLSL uniform representing the ratio of canvas coordinate space to canvas pixel space.

Example:
uniform float czm_resolutionScale;
  • czm_sceneMode

An automatic GLSL uniform representing the current SceneMode, expressed as a float.

Example:
// GLSL declaration
uniform float czm_sceneMode;
// Example
if (czm_sceneMode == czm_sceneMode2D)
{
eyeHeightSq = czm_eyeHeight2D.y;
}

An automatic GLSL uniform representing the normalized direction to the sun in eye coordinates. This is commonly used for directional lighting computations.

Example:
// GLSL declaration
uniform vec3 czm_sunDirectionEC;
// Example
float diffuse = max(dot(czm_sunDirectionEC, normalEC), 0.0);

An automatic GLSL uniform representing the normalized direction to the sun in world coordinates. This is commonly used for directional lighting computations.

Example:
// GLSL declaration
uniform vec3 czm_sunDirectionWC;

An automatic GLSL uniform representing the sun position in Columbus view world coordinates.

Example:
// GLSL declaration
uniform vec3 czm_sunPositionColumbusView;

An automatic GLSL uniform representing the sun position in world coordinates.

Example:
// GLSL declaration
uniform vec3 czm_sunPositionWC;

An automatic GLSL uniform representing a 3x3 rotation matrix that transforms from True Equator Mean Equinox (TEME) axes to the pseudo-fixed axes at the current scene time.

Example:
// GLSL declaration
uniform mat3 czm_temeToPseudoFixed;
// Example
vec3 pseudoFixed = czm_temeToPseudoFixed * teme;

An automatic GLSL uniform representing a 4x4 view transformation matrix that transforms world coordinates to eye coordinates.

Example:
// GLSL declaration
uniform mat4 czm_view;
// Example
vec4 eyePosition = czm_view * worldPosition;

An automatic GLSL uniform representing a 4x4 view transformation matrix that transforms 3D world coordinates to eye coordinates. In 3D mode, this is identical to czm_view, but in 2D and Columbus View it represents the view matrix as if the camera were at an equivalent location in 3D mode. This is useful for lighting 2D and Columbus View in the same way that 3D is lit.

Example:
// GLSL declaration
uniform mat4 czm_view3D;
// Example
vec4 eyePosition3D = czm_view3D * worldPosition3D;

An automatic GLSL uniform representing the position of the viewer (camera) in world coordinates.

An automatic GLSL uniform containing the viewport's xywidth, and height properties in an vec4's xyz, and w components, respectively.

Example:
// GLSL declaration
uniform vec4 czm_viewport;
// Scale the window coordinate components to [0, 1] by dividing
// by the viewport's width and height.
vec2 v = gl_FragCoord.xy / czm_viewport.zw;

An automatic GLSL uniform representing a 4x4 orthographic projection matrix that transforms window coordinates to clip coordinates. Clip coordinates is the coordinate system for a vertex shader's gl_Position output.

This transform is useful when a vertex shader inputs or manipulates window coordinates as done by BillboardCollection.

Do not confuse czm_viewportTransformation with czm_viewportOrthographic. The former transforms from normalized device coordinates to window coordinates; the later transforms from window coordinates to clip coordinates, and is often used to assign to gl_Position.

Example:
// GLSL declaration
uniform mat4 czm_viewportOrthographic;
// Example
gl_Position = czm_viewportOrthographic * vec4(windowPosition, 0.0, 1.0);

An automatic GLSL uniform representing a 4x4 transformation matrix that transforms normalized device coordinates to window coordinates. The context's full viewport is used, and the depth range is assumed to be near = 0 and far = 1.

This transform is useful when there is a need to manipulate window coordinates in a vertex shader as done by BillboardCollection. In many cases, this matrix will not be used directly; instead, czm_modelToWindowCoordinates will be used to transform directly from model to window coordinates.

Do not confuse czm_viewportTransformation with czm_viewportOrthographic. The former transforms from normalized device coordinates to window coordinates; the later transforms from window coordinates to clip coordinates, and is often used to assign to gl_Position.

Example:
// GLSL declaration
uniform mat4 czm_viewportTransformation;
// Use czm_viewportTransformation as part of the
// transform from model to window coordinates.
vec4 q = czm_modelViewProjection * positionMC; // model to clip coordinates
q.xyz /= q.w; // clip to normalized device coordinates (ndc)
q.xyz = (czm_viewportTransformation * vec4(q.xyz, 1.0)).xyz; // ndc to window coordinates

An automatic GLSL uniform representing a 4x4 view-projection transformation matrix that transforms world coordinates to clip coordinates. Clip coordinates is the coordinate system for a vertex shader's gl_Position output.

Example:
// GLSL declaration
uniform mat4 czm_viewProjection;
// Example
vec4 gl_Position = czm_viewProjection * czm_model * modelPosition;
// The above is equivalent to, but more efficient than:
gl_Position = czm_projection * czm_view * czm_model * modelPosition;

An automatic GLSL uniform representing a 3x3 view rotation matrix that transforms vectors in world coordinates to eye coordinates.

Example:
// GLSL declaration
uniform mat3 czm_viewRotation;
// Example
vec3 eyeVector = czm_viewRotation * worldVector;

An automatic GLSL uniform representing a 3x3 view rotation matrix that transforms vectors in 3D world coordinates to eye coordinates. In 3D mode, this is identical to czm_viewRotation, but in 2D and Columbus View it represents the view matrix as if the camera were at an equivalent location in 3D mode. This is useful for lighting 2D and Columbus View in the same way that 3D is lit.

Example:
// GLSL declaration
uniform mat3 czm_viewRotation3D;
// Example
vec3 eyeVector = czm_viewRotation3D * worldVector;

内置常量

这里常量和函数的定义,在cesium官网的一个历史文档里有描述,后来版本的文档里没有了。

https://cesiumjs.org/releases/b28/Documentation/index.html

点击glsl,可以看到。

  • czm_epsilon6
  • czm_epsilon7
  • czm_infinity
  • czm_oneOverPi
  • czm_oneOverTwoPi
  • czm_passCesium3DTile
  • czm_passCesium3DTileClassification
  • czm_passCesium3DTileClassificationIgnoreShow
  • czm_passClassification
  • czm_passCompute
  • czm_passEnvironment
  • czm_passGlobe
  • czm_passOpaque
  • czm_passOverlay
  • czm_passTerrainClassification
  • czm_passTranslucent
  • czm_pi
  • czm_piOverFour
  • czm_piOverSix
  • czm_piOverThree
  • czm_piOverTwo
  • czm_radiansPerDegree
  • czm_sceneMode
  • czm_sceneMode2D

内置结构体定义

内置函数

czm_alphaWeight

原文:https://www.cnblogs.com/wanghui2011/articles/10870294.html

CESIUM内置shader变量和函数[转]的更多相关文章

  1. osg内置shader变量

    uniform int osg_FrameNumber:当前OSG程序运行的帧数: uniform float osg_FrameTime:当前OSG程序的运行总时间: uniform float o ...

  2. Unity 内置Shader变量、辅助函数等

    一:标准库里的常用.cginc文件 HLSLSupport.cginc - (automatically included) Helper macros and definitions for cro ...

  3. GLSL语言内置的变量详解

    GLSL语言内置的变量,包括内置的顶点属性(attribute).一致变量(uniform).易变变量(varying)以及常量(const),一方面加深印象,另一方面今天的文章可以为以后的编程做查询 ...

  4. Python内置的字符串处理函数整理

    Python内置的字符串处理函数整理 作者: 字体:[增加 减小] 类型:转载 时间:2013-01-29我要评论 Python内置的字符串处理函数整理,收集常用的Python 内置的各种字符串处理 ...

  5. Flask内置URL变量转换器

    Flask内置URL变量转换器: 转换器通过特定的规则执行,”<转换器: 变量名>”.<int: year>把year的值转换为证书,因此我们可以在视图函数中直接对year变量 ...

  6. python内置常用高阶函数(列出了5个常用的)

    原文使用的是python2,现修改为python3,全部都实际输出过,可以运行. 引用自:http://www.cnblogs.com/duyaya/p/8562898.html https://bl ...

  7. PHP内置的字符串处理函数

    字符串的特点    1.其他类型的数据用在字符串类型处理函数中,会自动将其转化成字符串后,在处理 <?php echo substr("abcdefghijklmn",2,4 ...

  8. thinkPHP内置字符串截取msubstr函数用法详解

    作者:陈达辉 字体:[增加 减小] 类型:转载 时间:2016-11-15 我要评论 这篇文章主要介绍了thinkPHP内置字符串截取函数用法,结合实例形式分析了thinkPHP内置的字符串截取函数功 ...

  9. unity, 查看内置shader源码

    1,建一个球体. 2,建一个材质,将材质拖到球体上. 3,在材质的shader下拉列表中选择想查看的内置shader,点材质栏右上设置按钮->Select Shader 进入shader面板. ...

随机推荐

  1. MySQL Lock--gap before rec insert intention waiting

    在事务插入数据过程中,为防止其他事务向索引上该位置插入数据,会在插入之前先申请插入意向范围锁,而如果申请插入意向范围锁被阻塞,则事务处于gap before rec insert intention ...

  2. SQL SERVER-记录对表操作的触发器

    CREATE TRIGGER [dbo].[KNMT_LOG] ON [dbo].[KNMT] FOR UPDATE, DELETE AS ) ) ) ) DECLARE @STATMT AS VAR ...

  3. Flask之DButils

    一.简介 在使用pymysql时遇到一些问题,就是当用户访问过多时,pymysql它同一时间只能处理一个线程.大大的降低了效率,对此我们基于DBUtils实现数据链接池. 二.安装与使用 创建数据库连 ...

  4. 【转】DATA_SECTION 和CODE_SECTION 的区别

    请问#pragma DATA_ALIGN有什么作用? 下面是我在EDMA的一个例程中摘录的几句话:#pragma DATA_ALIGN(ping,128);#pragma DATA_ALIGN(pon ...

  5. nginx反向代理实现均衡负载及调度方法

    http upstream配置参数: ngx_http_upstream_module模块将多个服务器定义成服务器组,而由proxy_pass, fastcgi_pass等指令进行引用 upstrea ...

  6. 【转】TCP之深入浅出send和recv

    本篇我们用一个测试机上的阻塞socket实例来说明主题.文章中所有图都是在测试系统上现截取的. 需要理解的3个概念 1. TCP socket的buffer 每个TCP socket在内核中都有一个发 ...

  7. 如何使用Arduino UNO开发板编程ATtiny85

    最近在Youtube上看了一个GreatScott制作的有关如何使用Attiny85的精彩教程,之后我购买了一片Attiny85 IC.但是,我花了很长时间尝试在它上面运行一个简单的LED闪烁的代码. ...

  8. 【2019牛客多校第一场】XOR

    题意: 给你一个集合A,里边有n个正整数,对于所有A的.满足集合内元素异或和为0的子集S,问你∑|S| n<=1e5,元素<=1e18 首先可以转化问题,不求∑|S|,而是求每个元素属于子 ...

  9. P1600 天天爱跑步[桶+LCA+树上差分]

    题目描述 小c同学认为跑步非常有趣,于是决定制作一款叫做<天天爱跑步>的游戏.<天天爱跑步>是一个养成类游戏,需要玩家每天按时上线,完成打卡任务. 这个游戏的地图可以看作一一棵 ...

  10. P2149 [SDOI2009]Elaxia的路线[最长公共路径]

    题目描述 最近,Elaxia和w**的关系特别好,他们很想整天在一起,但是大学的学习太紧张了,他们 必须合理地安排两个人在一起的时间. Elaxia和w**每天都要奔波于宿舍和实验室之间,他们 希望在 ...