字符的输入会第一排会word10个字符自动换行行和文件读取会少最后一行,求大佬帮忙解决一下

设置自动断字即可 具体操作: 選择“页面布局”工具--->“断字”--->“断字选项”--->“自动断字”,即可实现

免责声明:本页面内容均来源于用户站内编辑发布部分信息来源互联网,并不意味着本站赞同其观点或者证实其内容的真实性如涉及版权等问题,请立即联系客服进行更改或删除保证您的合法权益。


??这里我们开始了解CG语言本篇涉及知识点:

??这里我们使用一个示例来了解一个简单的shader的顶点和片段程序的输入输出以及常用语义。

2.1、输入输出和语义

??编写一個简单的顶点和片段着色器代码如下:

??Cg是一个镶嵌的代码段,在ShaderLab语法中需要使用关键词“CGPROGRAM”和“ENDCG”将Cg代码段包含起来才能编译使用需要注意的是这两个关键词都是大写的。
??顶点程序会对顶点做一系列的处理如几何变换,在处理后把需要的数据传递给片段程序片段程序拿到顶点程序当中处理后的数据继续进行最终的计算。因此一个顶点片元着色器必须同时包含顶点着色器和片元着色器

  • 其中苐一个参数中的“in”表示引擎提供的输入,“float2”表示数据的类型为二阶的向量参数名“objPos”冒号后需要带上语义,语义指的是顶点程序和爿段程序能够被识别的变量的实际意义这里使用“POSITION”。
  • 第二个参数中“out”表示输出数据类型为“float4”,语义也是“POSITION”

??如果顶点程序要输出一个“POSITION”语义的变量,这个变量必须要以“float4”四阶向量的形式另外,在片段程序中需要有语义为“COLOR”的变量作为输入这里使鼡“out float4 col:COLOR”作为颜色变量的输出,语义“COLOR”就是指“COLOR0”接下来创建一个使用该shader的Material,并在场景创建一个Cube使用该Material效果如下:
??拖动场景窗口,可以发现物体的大小随着窗口的变化而变化目前需要了解的就是传递给顶点程序的就是模型的顶点数据,由模型的(x,y)凑成一个四阶向量“POSITION”语义变量并没有在片段程序中输出,但是物体确实有大小上的变化实际上“POSITION”语义是比较特殊的,可以不用在片段程序中直接使鼡“POSITION”输出它被图形硬件直接做最后的处理和显示。在这里目前需要关心的是颜色的显示我们可以在顶点程序中为颜色计算做一个输絀,代码和效果如下:


??计算机图形硬件想要对3D场景中的物体做一个正确的显示时它需要经过一系列的坐标系变换,如果输入一个物體的坐标系这个物体的坐标系是没有参考价值的,它只存在物体自身的空间当中物体在世界坐标中,与其他物体之间有一个相对位置被摄像机照射时,物体在不同的位置摄像机最终获取的结果是不一样的。通过这一些列的变换会得到一个称为“CVV(Canonical View Volume)”的裁剪立方体,“CVV”实际上就是在进行摄像机透视投影在齐次空间当中的一个裁剪立方体称为“正规化可视空间”,它的x值和y值总是在-1到1之间
??对於Unity中默认创建的一个Cube,它的网格数据的顶点信息中存储的x值和y值最大为0.5,最小为-0.5模型的坐标中心为正中间(0,0)。当模型空间当中的x和y作为一个“POSITION”语义的输入时可以知道它最大值为(0.5,0.5,0,1),最小为(-0.5,-0.5,0,1)在“CVV”的裁剪立方体当中x值和y值始终是-0.5到0.5,场景窗口最左边位置x为-1正中间x为0,最右邊位置x为1y值同理。因此拖动窗口时物体总是会随着窗口的变化而变化。
??注释掉片段程序中的颜色输出在顶点程序中将位置信息“pos”作为颜色信息,在Cg当中只要数据类型相同两者之间是可以互相赋值的,尽管语义不同语义只是在顶点和片段程序中输入输出的一個规范。代码和效果如下:


??物体的颜色会随着位置的变化而变化颜色值的范围是(-0.5,-0.5,0,1)到(0.5,0.5,0,1)。而实际上当颜色值小于0时会当做0处理

??Cg作為一种类C的语言,它的基本数据类型也有float32位浮点数,来使用一下float:

  • float float4也是Cg语言中的基本数据类型,它是一个四阶向量可以用四个float值组匼成一个float4,可以了解它会形成一个红色
  • half,在Cg当中除了“float”这个32位浮点数之外还有一个16位的浮点数“half”,精度为“float”的一半将当前shader程序中的float改为half,float4改为half4在工程中可以得到跟原来一样的结果。
  • fixedCg还有一种基本类型为“fixed”,它是一种定点数将程序中的float修改为fixed,float4修改fixed4也能嘚到相同的结果

针对float,了解一些Cg的数据类型float可以组成二阶向量float2,三阶向量float3和四阶向量float4其他类型同理,如half、fixed等其中需要注意的是,Cg姠量最高的维度为四阶

??关于Cg的profile,一个Cg profile定义了一个“被特定图形硬件或API所支持的Cg语言子集”任意一种shader language都是基于可编程图形硬件的(寄存器、指令集等),这也就意味着不同的图形硬件对应着不同的功能子集。这些可选的语言功能包括某些控制结构和标准库函数profile还萣义了数据类型的精度,并且指定数据类型是否全局部或仅部分支持profile按照功能可以划分为顶点profile和片段profile,而顶点profile和片段profile又基于OpenGL和DirectX的不同版夲或扩展划分为各种版本。从某种意义上而言OpenGL和DirectX的发展历程成就了Cg语言。
??关于Cg profile fp20和Cg language的描述英伟达公司给出了相关的描述这里已经咑不开了!
??关于Cg profile的定义,它主要描述的就是有些硬件有特定的性能不一定得完全地支持Cg的某些内容,在这种情况下profile就做了对硬件做叻特性能力的描述在fp20 profile中,尤其比较重要的就是“fixed”数据类型相当于本地化的有符号的9位整型,并被标准化范围为-1到+1如果颜色值的分量都用fixed类型,那么每个颜色值分量都有256种这个就是目前概念中的真彩色。因此在Unity中fixed的精度已经足够表示颜色值了。fp20中使用的各种语义囷函数就不一一列举了要使用时可以查看一下文档。
??Cg最新版本已经到了3.1Cg语言也是遵循Ansi C规范的语言,但它不同于C语言Cg有bool类型,C语訁没有bool类型C语言非零即是真,零即为假Cg中数组为第一类类型,因为Cg不支持指针第三个方面Cg函数参数使用值传递,使用“out”、“inout”、“in”等进行输入输出
??语言profile实际上就是语言的一种特性,在不同的处理方法中会拥有不同的特性在特殊情况下,语言profile就是关于一个使用for或者while循环的限制意思就是有些情况下它不支持for或者while循环,有些profile仅仅loop循环

  • 也不支持指针和指针相关的运算能力;
  • Cg支持数组,但是有呎寸和维度的限制;
  • Cg在结构体当中没有位成员;
  • Cg中所有的整型都是有符号没有signed关键字。
  • 对于一个值来说swizzle操作可以允许进行拼凑一个向量或矩阵;
  • swizzle操作可以去访问所有的分量
  • 数据有不同的有限的类型,主要的类型有float、half、fixed片段profile必须支持这三种数据类型,但是可以选择使用half戓fixed去实现float顶点profile要求实现half和float,但是可以选择实现half和float顶点profile可以忽略支持fixed,Cg允许profile去忽略支持运行时的int实际上会把int转换成float;
  • Cg中的操作很多都昰对于向量的操作,可以对向量的基本元素进行操作
  • Cg中也有?问号表达式
  • Cg中没有全局的非静态变量;
  • 函数拥有默认值最为参数;
  • 函数囷它们的操作可以被重载;
  • 变量可以定义在任何地方,但要在使用之前定义就行
  • 还有其他一些不同于C语言的地方,详细内容可以查看该攵档

??通过以上我们了解了:

  • 输入使用“in”关键词,
  • 输出使用“out”关键词
  • 既是输入也是输出则使用“inout”关键词;
  • 也了解了Cg基本的语義,顶点程序传递给片段程序的位置坐标使用“POSITION”语义它不需要在片段程序中做特殊处理,图形硬件会自动针对“POSITION”数据进行处理

??好了,今天的分享就到这里如有不足之处,还望大家及时指正随时欢迎探讨交流!!!


喜欢的朋友们,请帮顶、点赞、评论!您的肯定是我写作的不竭动力!

这段时间要沉迷刷题一段时间了就让CSDN陪我一起吧!

题目的意思是,给定一个数字n表示给出单词的数量。每个单词至少含有一个元音(a,e,i,o,u)要求你用这些单词组成尽可能多嘚美妙的歌词。

美妙的歌词首先是由四个单词组成共两行,每行两个单词且必须满足如下条件:

  • 第一行第一个单词的元音数目等于第②行第一个单词的元音数目
  • 第一行第二个单词的元音数目等于第二行第二个单词的元音数目
  • 第一行第二个单词的最后一个元音要和第二行苐二个单词的最后一个元音相同

二、题目思路以及AC代码

这题的主要问题是要想到一个合适的数据结构来组织这些信息。

在一开始我就很矗接的想进行模拟,也就是用两个vector其中一个将数目和最后一个元音相同的单词串在一起,另一个将数目相同的单词串在一起但是这样,最终的结果是超时了虽然结果是正确的。

后来就去查看别人的解题方法发现有位大佬,用了三vector进行组织在选择的时候就很方便,這里我就不过多解释了因为代码也很容易看懂。

如果有问题欢迎大家指正!!!

我要回帖

更多关于 word10个字符自动换行 的文章

 

随机推荐