unity3d中 如何用js代码来更改shader中的3个子着色器

#pragma strict
var alpha;
var fadeSpeed : float=10;
var timeLeft:float=10;
var rotationSpeed:float = 100.0f;

function Start () {

}

function Update () {
transform.Rotate(Vector3(0,rotationSpeed*Time.deltaTime,0));

if (gameObject.renderer.material.color.a > 0)
{
    timeLeft = timeLeft - Time.deltaTime;
    alpha = (timeLeft/fadeSpeed);
    gameObject.renderer.material.color.a=alpha ;
    gameObject.transform.position.y+=0.002;

}

}
利用上面的代码只能改变Material中Element 0,改变不了element2,element3

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Unity3d 图片添加shader,透明部分被覆盖,请问shader哪写错了

Unity3d 图片添加shader,透明部分被覆盖,请问shader哪写错了

Unity Shader Graph在普通的3D项目中不能使用吗?

我只知道在创建项目的时候创建lightweight项目的话,可以使用shader graph。 可以在3D项目中使用shader graph吗? 网上教程是使用package下载lightweight和shader graph,但是在3D项目中的package根本搜索不到这两个包。 请问3D项目到底能不能使用shader graph?

unity3d中加入shader后材质球的颜色变为黑色的问题

我想在unity中给cube添加轮廓线,从某个帖子中得知shader可以实现,还给了一段shader的代码,但是只要给材质球挂载上这个shader,轮廓是有了,但是材质球会变成黑色。麻烦各位大神给看看,是不是这个shader哪里写的有问题 ``` Shader "Custom/NewSurfaceShader" { Properties { //定义材质的颜色为白色 _Color ("Main Color", Color) = (1,1,1,1) //定义材质的轮廓线为黑色 _OutlineColor ("Outline Color", Color) = (0,0,0,1) //改变这个能改变轮廓边的颜色 //定义线宽 _Outline ("Outline width", Range (0.0, 0.03)) = 0.001 //改变这个能改变轮廓边的粗细 _MainTex ("Base (RGB)", 2D) = "white" { } } CGINCLUDE #include "UnityCG.cginc" struct appdata { float4 vertex : POSITION; float3 normal : NORMAL; }; struct v2f { float4 pos : POSITION; float4 color : COLOR; }; uniform float _Outline; uniform float4 _OutlineColor; v2f vert(appdata v) { // just make a copy of incoming vertex data but scaled according to normal direction v2f o; o.pos = mul(UNITY_MATRIX_MVP, v.vertex); float3 norm = mul ((float3x3)UNITY_MATRIX_IT_MV, v.normal); float2 offset = TransformViewToProjection(norm.xy); o.pos.xy += offset * o.pos.z * _Outline; o.color = _OutlineColor; return o; } ENDCG SubShader { Tags { "Queue" = "Transparent" } // note that a vertex shader is specified here but its using the one above Pass { Name "OUTLINE" Tags { "LightMode" = "Always" } Cull Off ZWrite Off ZTest Always ColorMask RGB // alpha not used // you can choose what kind of blending mode you want for the outline Blend SrcAlpha OneMinusSrcAlpha // Normal //Blend One One // Additive //Blend One OneMinusDstColor // Soft Additive //Blend DstColor Zero // Multiplicative //Blend DstColor SrcColor // 2x Multiplicative CGPROGRAM #pragma vertex vert #pragma fragment frag half4 frag(v2f i) :COLOR { return i.color; } ENDCG } Pass { Name "BASE" ZWrite On ZTest LEqual Blend SrcAlpha OneMinusSrcAlpha Material { Diffuse [_Color] Ambient [_Color] } Lighting On SetTexture [_MainTex] { ConstantColor [_Color] Combine texture * constant } SetTexture [_MainTex] { Combine previous * primary DOUBLE } } } SubShader { Tags { "Queue" = "Transparent" } Pass { Name "OUTLINE" Tags { "LightMode" = "Always" } Cull Front ZWrite Off ZTest Always ColorMask RGB // you can choose what kind of blending mode you want for the outline Blend SrcAlpha OneMinusSrcAlpha // Normal //Blend One One // Additive //Blend One OneMinusDstColor // Soft Additive //Blend DstColor Zero // Multiplicative //Blend DstColor SrcColor // 2x Multiplicative CGPROGRAM #pragma vertex vert #pragma exclude_renderers gles xbox360 ps3 ENDCG SetTexture [_MainTex] { combine primary } } Pass { Name "BASE" ZWrite On ZTest LEqual Blend SrcAlpha OneMinusSrcAlpha Material { Diffuse [_Color] Ambient [_Color] } Lighting On SetTexture [_MainTex] { ConstantColor [_Color] Combine texture * constant } SetTexture [_MainTex] { Combine previous * primary DOUBLE } } } Fallback "Diffuse" } ``` ![图片说明](https://img-ask.csdn.net/upload/201610/26/1477449766_40855.png)

unity shader关于语义

请问unity shader中有texcoordn语义,这n组纹理坐标有什么区别,还有colorn

unity shader 限制贴图显示

这几天在学shader的时候,想到一个问题,我有两张纹理图,一张是主纹理(1024*512),一张是局部纹理(256*128),局部纹理在主纹理的中心, 我已经将它们混合了,但发现了一个问题,由于局部纹理太小,导致它会被拉伸,我想到一个解决方案就是将局部纹理分辨率设置成主纹理一样的分辨率, 多余的设置成透明后混合,也可以达到效果。但我不想放弃另一种思路,就是直接将纹理混合,在shader 中限制其显示区域,奈何能力不够,网上也找不到类似 资料,只能来这试试![图片说明](https://img-ask.csdn.net/upload/201803/05/1520218412_400185.png)

unity模型. shader. 3dMAX

unity导入的房屋模型不真实. ,怎么才能做到让其变得更真实呢??是不是害得需要学会unity中的shader呢??求大神指点

UnityShader中下面的uv怎么计算的?

问题一: 下面两个箭头处分别是怎么计算的呢?(求过程) ![图片说明](https://img-ask.csdn.net/upload/201810/25/1540429385_392378.png) ![图片说明](https://img-ask.csdn.net/upload/201810/25/1540431320_804446.jpg)

unity shader 向量乘法问题

#define TRANSFORM_TEX(tex,name) (tex.xy * name##_ST.xy + name##_ST.zw) tex.xy等价于float2(x,y),那么tex.xy * name##_ST.xy 应该是一个标量才对,而这里两个相乘应该是一个二维向量。在swizzle操作中的乘法和float的点乘是不一样的吗?

unity shader实现的水流效果在安卓上变成块状方片在流动,PC和IOS正常

在手机端的会随着时间的增长水流效果变的模糊 手机配置很低会立刻模糊 手机配置越高变模糊需要的时间越长 这是电脑的正常效果 ![图片说明](https://img-ask.csdn.net/upload/201903/26/1553580542_323567.jpg) 这是手机上不正常的效果 测试机是目前主流8核128G手机 ![图片说明](https://img-ask.csdn.net/upload/201903/26/1553580681_733001.jpg) 由于保密性我就只能截图一部分 下面是shader代码 ``` // Toony Colors Pro+Mobile 2 // (c) 2014-2017 Jean Moreno Shader "Toony Colors Pro 2/Examples/Water/Reflection" { Properties { [TCP2HelpBox(Warning,Make sure that the Camera renders the depth texture for this material to work properly. You can use the script __TCP2_CameraDepth__ for this.)] [TCP2HeaderHelp(BASE, Base Properties)] //TOONY COLORS _HColor ("Highlight Color", Color) = (0.6,0.6,0.6,1.0) _SColor ("Shadow Color", Color) = (0.3,0.3,0.3,1.0) //DIFFUSE _MainTex ("Main Texture (RGB)", 2D) = "white" {} [TCP2Separator] //TOONY COLORS RAMP _RampThreshold ("Ramp Threshold", Range(0,1)) = 0.5 _RampSmooth ("Ramp Smoothing", Range(0.001,1)) = 0.1 [TCP2Separator] [TCP2HeaderHelp(WATER)] _Color ("Water Color", Color) = (0.5,0.5,0.5,1.0) [Header(Foam)] _FoamSpread ("Foam Spread", Range(0.01,5)) = 2 _FoamStrength ("Foam Strength", Range(0.01,1)) = 0.8 _FoamColor ("Foam Color (RGB) Opacity (A)", Color) = (0.9,0.9,0.9,1.0) [NoScaleOffset] _FoamTex ("Foam (RGB)", 2D) = "white" {} _FoamSmooth ("Foam Smoothness", Range(0,0.5)) = 0.02 _FoamSpeed ("Foam Speed", Vector) = (2,2,2,2) [Header(Waves Normal Map)] [TCP2HelpBox(Info,There are two normal maps blended. The tiling offsets affect each map uniformly.)] _BumpMap ("Normal Map", 2D) = "bump" {} [PowerSlider(2.0)] _BumpScale ("Normal Scale", Range(0.01,2)) = 1.0 _BumpSpeed ("Normal Speed", Vector) = (0.2,0.2,0.3,0.3) _NormalDepthInfluence ("Depth/Reflection Influence", Range(0,1)) = 0.5 [TCP2Separator] [TCP2HeaderHelp(SPECULAR, Specular)] //SPECULAR _SpecColor ("Specular Color", Color) = (0.5, 0.5, 0.5, 1) _Shininess ("Roughness", Range(0.0,10)) = 0.1 [TCP2Separator] [TCP2HeaderHelp(REFLECTION, Reflection)] //REFLECTION _ReflStrength ("Reflection Strength", Range(0,1)) = 1 [HideInInspector] _ReflectionTex ("Planar Reflection RenderTexture", 2D) = "white" {} [TCP2Separator] [TCP2HeaderHelp(RIM, Rim)] //RIM LIGHT _RimColor ("Rim Color", Color) = (0.8,0.8,0.8,0.6) _RimMin ("Rim Min", Range(0,1)) = 0.5 _RimMax ("Rim Max", Range(0,1)) = 1.0 [TCP2Separator] //Avoid compile error if the properties are ending with a drawer [HideInInspector] __dummy__ ("unused", Float) = 0 } SubShader { Tags {"Queue"="Geometry" "RenderType"="Opaque"} CGPROGRAM #pragma surface surf ToonyColorsWater keepalpha vertex:vert nolightmap #pragma target 3.0 //================================================================ // VARIABLES fixed4 _Color; sampler2D _MainTex; float4 _MainTex_ST; sampler2D _BumpMap; float4 _BumpMap_ST; half _BumpScale; half4 _BumpSpeed; half _NormalDepthInfluence; sampler2D_float _CameraDepthTexture; half4 _FoamSpeed; half _FoamSpread; half _FoamStrength; sampler2D _FoamTex; fixed4 _FoamColor; half _FoamSmooth; fixed4 _RimColor; fixed _RimMin; fixed _RimMax; half _ReflStrength; sampler2D _ReflectionTex; struct Input { half2 texcoord; half2 bump_texcoord; half3 viewDir; float4 sPos; }; //================================================================ // CUSTOM LIGHTING //Lighting-related variables half4 _HColor; half4 _SColor; half _RampThreshold; half _RampSmooth; fixed _Shininess; //Custom SurfaceOutput struct SurfaceOutputWater { half atten; fixed3 Albedo; fixed3 Normal; fixed3 Emission; half Specular; fixed Gloss; fixed Alpha; }; inline half4 LightingToonyColorsWater (inout SurfaceOutputWater s, half3 viewDir, UnityGI gi) { half3 lightDir = gi.light.dir; #if defined(UNITY_PASS_FORWARDBASE) half3 lightColor = _LightColor0.rgb; half atten = s.atten; #else half3 lightColor = gi.light.color.rgb; half atten = 1; #endif s.Normal = normalize(s.Normal); fixed ndl = max(0, dot(s.Normal, lightDir)); #define NDL ndl #define RAMP_THRESHOLD _RampThreshold #define RAMP_SMOOTH _RampSmooth fixed3 ramp = smoothstep(RAMP_THRESHOLD - RAMP_SMOOTH*0.5, RAMP_THRESHOLD + RAMP_SMOOTH*0.5, NDL); #if !(POINT) && !(SPOT) ramp *= atten; #endif #if !defined(UNITY_PASS_FORWARDBASE) _SColor = fixed4(0,0,0,1); #endif _SColor = lerp(_HColor, _SColor, _SColor.a); //Shadows intensity through alpha ramp = lerp(_SColor.rgb, _HColor.rgb, ramp); fixed4 c; c.rgb = s.Albedo * lightColor.rgb * ramp; c.a = s.Alpha; //Specular half3 h = normalize(lightDir + viewDir); float ndh = max(0, dot (s.Normal, h)); float spec = pow(ndh, s.Specular*128.0) * s.Gloss * 2.0; spec *= atten; c.rgb += lightColor.rgb * _SpecColor.rgb * spec; #ifdef UNITY_LIGHT_FUNCTION_APPLY_INDIRECT c.rgb += s.Albedo * gi.indirect.diffuse; #endif return c; } void LightingToonyColorsWater_GI(inout SurfaceOutputWater s, UnityGIInput data, inout UnityGI gi) { gi = UnityGlobalIllumination(data, 1.0, s.Normal); gi.light.color = _LightColor0.rgb; //remove attenuation s.atten = data.atten; //transfer attenuation to lighting function } //================================================================ // VERTEX FUNCTION struct appdata_tcp2 { float4 vertex : POSITION; float3 normal : NORMAL; float4 texcoord : TEXCOORD0; float4 texcoord1 : TEXCOORD1; float4 texcoord2 : TEXCOORD2; float4 tangent : TANGENT; }; #define TIME (_Time.y) void vert(inout appdata_tcp2 v, out Input o) { UNITY_INITIALIZE_OUTPUT(Input, o); //Main texture UVs float3 worldPos = mul(unity_ObjectToWorld, v.vertex).xyz; half2 mainTexcoords = worldPos.xz * 0.1; o.texcoord.xy = TRANSFORM_TEX(mainTexcoords.xy, _MainTex); o.bump_texcoord = mainTexcoords.xy + TIME.xx * _BumpSpeed.xy * 0.1; float4 pos = UnityObjectToClipPos(v.vertex); o.sPos = ComputeScreenPos(pos); COMPUTE_EYEDEPTH(o.sPos.z); } //================================================================ // SURFACE FUNCTION void surf(Input IN, inout SurfaceOutputWater o) { half3 normal = UnpackScaleNormal(tex2D(_BumpMap, IN.bump_texcoord.xy * _BumpMap_ST.xx), _BumpScale).rgb; half3 normal2 = UnpackScaleNormal(tex2D(_BumpMap, IN.bump_texcoord.xy * _BumpMap_ST.yy + TIME.xx * _BumpSpeed.zw * 0.1), _BumpScale).rgb; normal = (normal+normal2)/2; o.Normal = normal; IN.sPos.xy += normal.rg * _NormalDepthInfluence; half ndv = dot(IN.viewDir, normal); fixed4 mainTex = tex2D(_MainTex, IN.texcoord.xy); float sceneZ = SAMPLE_DEPTH_TEXTURE_PROJ(_CameraDepthTexture, UNITY_PROJ_COORD(IN.sPos)); if(unity_OrthoParams.w > 0) { //orthographic camera #if defined(UNITY_REVERSED_Z) sceneZ = 1.0f - sceneZ; #endif sceneZ = (sceneZ * _ProjectionParams.z) + _ProjectionParams.y; } else //perspective camera sceneZ = LinearEyeDepth(sceneZ); float partZ = IN.sPos.z; float depthDiff = (sceneZ - partZ); //Depth-based foam half2 foamUV = IN.texcoord.xy; foamUV.xy += TIME.xx*_FoamSpeed.xy*0.05; fixed4 foam = tex2D(_FoamTex, foamUV); foamUV.xy += TIME.xx*_FoamSpeed.zw*0.05; fixed4 foam2 = tex2D(_FoamTex, foamUV); foam = (foam + foam2) / 2; float foamDepth = saturate(_FoamSpread * depthDiff); half foamTerm = (smoothstep(foam.r - _FoamSmooth, foam.r + _FoamSmooth, saturate(_FoamStrength - foamDepth)) * saturate(1 - foamDepth)) * _FoamColor.a; o.Albedo = lerp(mainTex.rgb * _Color.rgb, _FoamColor.rgb, foamTerm); o.Alpha = mainTex.a * _Color.a; o.Alpha = lerp(o.Alpha, _FoamColor.a, foamTerm); //Specular o.Gloss = 1; o.Specular = _Shininess; //Rim half3 rim = smoothstep(_RimMax, _RimMin, 1-Pow4(1-ndv)) * _RimColor.rgb * _RimColor.a; o.Emission += rim.rgb; fixed4 reflColor = tex2Dproj(_ReflectionTex, UNITY_PROJ_COORD(IN.sPos)); o.Emission += reflColor.rgb * _ReflStrength; } ENDCG } //Fallback "Diffuse" CustomEditor "TCP2_MaterialInspector_SG" } ```

UnityShader中下面的uv怎么计算?

红色框里计算的是两点之间的模长,即求两点间的距离。但是tmpUV并不是一个点呀。 怎么回事呢? ![图片说明](https://img-ask.csdn.net/upload/201810/29/1540795170_310243.png)

unity shader 屏幕后处理

各位老师好,有个关于shader的问题想请教下,我弄了一个屏幕后处理的特效,在onRenderimage里调用graphics.bilt(src,dest,mat)为整个屏幕内物体描边,mat是带上描边shader的材质球 。现在想为另外一个单独物体进行描边(就是想让这个物体单独运行一次描边shader),我查询了好久,好像graphics.drawmesh可以达到这种效果,但是不知道具体操作,求指教

Unity shader 根据网格顶点的高低 改变UV方向

shader里面怎么计算顶点~来改变uv的方向?有没有大佬教一下!水往低处流的效果!没C币 有红包~

请问如何将OpenGL中的纹理单元传递给片段着色器???

小白我最近在学习GLSL,绝对的菜鸟级别啊~ 今天遇到了一个问题,我用 *texture[1]* 在程序中存储了一个纹理,然后使用了下面两行代码将纹理传递给片段着色器,程序是可以运行的 *texUnitLoc = glGetUniformLocation(p, "tex"); glUniform1i(texUnitLoc, 0);* 但是当我在程序中存储两个纹理以后,想要将两个纹理都传递到着色器时,应该怎么办啊??将上面代码中的‘0’换做‘texture[0]’也不管用啊,什么都不管用啊,glUniform究竟是怎么一回事啊?求大神指点~~T_T 附代码如下: #include <stdio.h> #include <stdlib.h> #include <GL/glew.h> #include <GL/glut.h> #include <glaux.h> #include "textfile.h" #include "printInfoLog.h" GLfloat LightAmbient0[]= {1, 1, 1, 1.0f }; GLfloat LightDiffuse0[]= {1.0f, 1.0f, 1.0f, 1.0f }; GLfloat LightSpecular0[]={1.0f, 1.0f, 1.0f, 1.0f}; GLfloat LightPosition0[]= {3.0f, 3.0f, 3.0f, 0.0f }; GLfloat MaterialAmbient[] = {0.3, 0.3, 0.3, 1.0f}; GLfloat MaterialDiffuse[] = {0.7, 0.7, 0.7, 1.0f}; GLfloat MaterialSpecular[] ={0.3, 0.3, 0.3, 1.0f}; GLfloat MaterialSe = 64.0f; GLUquadricObj *quadratic; GLuint texture[2]; // 存储一个纹理 GLint texUnitLoc,l3dUnitLoc; float a = 0.0f; GLuint v,f,p; float t = 0; GLint loc; AUX_RGBImageRec *LoadBMP(char *Filename) // 载入位图图象 { FILE *File=NULL; // 文件句柄 if (!Filename) // 确保文件名已提供 { return NULL; // 如果没提供,返回 NULL } File=fopen(Filename,"r"); // 尝试打开文件 if (File) // 文件存在么? { fclose(File); // 关闭句柄 return auxDIBImageLoad(Filename);// 载入位图并返回指针 } return NULL; // 如果载入失败,返回 NULL } int LoadGLTextures() // 载入位图(调用上面的代码)并转换成纹理 { int Status=FALSE; // 状态指示器 AUX_RGBImageRec *TextureImage[2]; // 创建纹理的存储空间 memset(TextureImage,0,sizeof(void *)*1); // 将指针设为 NULL // 载入位图,检查有无错误,如果位图没找到则退出 if (TextureImage[0]=LoadBMP("Data/Crate.bmp")) { Status=TRUE; // 将 Status 设为 TRUE glGenTextures(1, &texture[0]); // 创建纹理 // 创建 MipMapped 纹理 glBindTexture(GL_TEXTURE_2D, texture[0]); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_NEAREST); gluBuild2DMipmaps(GL_TEXTURE_2D, 3, TextureImage[0]->sizeX, TextureImage[0]->sizeY, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[0]->data); } if (TextureImage[0]) // 纹理是否存在 { if (TextureImage[0]->data) // 纹理图像是否存在 { free(TextureImage[0]->data); // 释放纹理图像占用的内存 } free(TextureImage[0]); // 释放图像结构 } if (TextureImage[1]=LoadBMP("Data/1.bmp")) { Status=TRUE; // 将 Status 设为 TRUE glGenTextures(1, &texture[1]); // 创建纹理 // 创建 MipMapped 纹理 glBindTexture(GL_TEXTURE_2D, texture[1]); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_NEAREST); gluBuild2DMipmaps(GL_TEXTURE_2D, 3, TextureImage[1]->sizeX, TextureImage[1]->sizeY, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[1]->data); } if (TextureImage[1]) // 纹理是否存在 { if (TextureImage[1]->data) // 纹理图像是否存在 { free(TextureImage[1]->data); // 释放纹理图像占用的内存 } free(TextureImage[1]); // 释放图像结构 } return Status; // 返回 Status } void changeSize(int w, int h) { float ratio = 1.0* w / h; glMatrixMode(GL_PROJECTION); glLoadIdentity(); glViewport(0, 0, w, h); gluPerspective(45,ratio,1,100); glMatrixMode(GL_MODELVIEW); } void init() { glEnable(GL_DEPTH_TEST); glClearColor(0.0,0.0,0.0,0.0); glEnable(GL_CULL_FACE); glEnable(GL_LIGHTING); glLightfv(GL_LIGHT0, GL_AMBIENT, LightAmbient0); glLightfv(GL_LIGHT0, GL_DIFFUSE, LightDiffuse0); glLightfv(GL_LIGHT0,GL_SPECULAR, LightSpecular0); glLightfv(GL_LIGHT0, GL_POSITION, LightPosition0); glEnable(GL_LIGHT0); glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, MaterialAmbient); glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialDiffuse); glMaterialfv(GL_FRONT_AND_BACK,GL_SPECULAR, MaterialSpecular); glMaterialf(GL_FRONT_AND_BACK,GL_SHININESS, MaterialSe); quadratic=gluNewQuadric(); gluQuadricNormals(quadratic, GLU_SMOOTH); gluQuadricTexture(quadratic, GL_TRUE); LoadGLTextures(); // 调用纹理载入子例程 glEnable(GL_TEXTURE_2D); // 启用纹理映射 } void renderScene(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); gluLookAt(0.0,0.0,5.0, 0.0,0.0,-1.0, 0.0f,1.0f,0.0f); a += 0.35f; if(a > 360) a -= 360.0f; glRotatef(a, 0, 1, 0); glRotatef(0, 1, 0, 0); //glBindTexture(GL_TEXTURE_2D, texture[0]); gluSphere(quadratic, 1, 32, 16); t+=0.01; glutPostRedisplay(); glutSwapBuffers(); } int main(int argc, char **argv) { void setShaders(); glutInit(&argc, argv); glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA); glutCreateWindow("GLSL DEMO"); init(); glutDisplayFunc(renderScene); glutReshapeFunc(changeSize); glewInit(); if (glewIsSupported("GL_VERSION_2_0")) printf("Ready for OpenGL 2.0\n"); else { printf("OpenGL 2.0 not supported\n"); exit(1); } setShaders(); texUnitLoc = glGetUniformLocation(p, "tex"); glUniform1i(texUnitLoc, 0); //l3dUnitLoc = glGetUniformLocation(p, "l3d"); //glUniform1i(l3dUnitLoc, texture[1]); glutMainLoop(); return 0; } void setShaders() { char *vs = NULL,*fs = NULL,*fs2 = NULL; v = glCreateShader(GL_VERTEX_SHADER); f = glCreateShader(GL_FRAGMENT_SHADER); vs = textFileRead("vs.txt"); fs = textFileRead("fs.txt"); const char * vv = vs; const char * ff = fs; glShaderSource(v, 1, &vv,NULL); glShaderSource(f, 1, &ff,NULL); free(vs);free(fs); glCompileShader(v); glCompileShader(f); printShaderInfoLog(v); printShaderInfoLog(f); p = glCreateProgram(); glAttachShader(p,v); glAttachShader(p,f); glLinkProgram(p); printProgramInfoLog(p); glUseProgram(p); //将p改为0表示使用固定的管线 }

cocos2d-x能直接使用Unity 2D的shader文件吗

如果不行Unity的shader文件能不能转成opengl 的FSH和VSH格式的文件?

unity shader graph如何预览动态效果

每次都需要启动游戏才能看到效果太费时间了,有没有方法不启动游戏看到动态效果。。。

unity如何代码找到material

导入了一个插件,它用了一个废弃的方法,第二行是废弃的 ``` string tmpStr="Shader \"Hidden/tmp_shdr\"{SubShader{Pass{}}}"; Material a = new Material(tmpStr); ``` 在只知道这个 tmpStr 的情况下有办法找到 material吗?这行字符串是什么意思?我在project里搜索关键字都没有找到 ``` 我知道可以使用Shader.Find("???") //但是名字是什么呢? ```

unity 中用代码改变slider的value但是展示没变化

用代码改变slider.value的值时,ui的属性值是变化的,但是场景中的UI展示没变化,是不是需要重新渲染一下,还是我用错了方法,请大神指点。

unity ComputeShader里结构体变量初始化如何不用分支判断

unity ComputeShader里结构体变量初始化如何不用分支判断 init 是一个int 类型 在跑完第一帧之后会被设置成其他值 现在想求助各位大神 如何在不使用标志位的情况下初始化这个结构体里的成员变量 dataBuffer[f].pos = pos; dataBuffer[f].velocity = float3(0, 0, 0); (补充说明:如果没有这个if分支初始化变量会导致不显示,直接初始化没有标志位分支表现结果和预期不符) ``` // Each #kernel tells which function to compile; you can have many kernels #pragma kernel CSMain // Create a RenderTexture with enableRandomWrite flag and set it // with cs.SetTexture RWTexture2D<float4> Result; float3 mousePos; float3 originPos; float deltaTime; int init; float radius; struct Data { float3 pos; float3 velocity; float3 uv; }; RWStructuredBuffer<Data> dataBuffer; //[numthreads(32, 32, 1)] [numthreads(32, 32, 1)] void CSMain(uint3 id : SV_DispatchThreadID) { // TODO: insert actual code here! //id.x 第X列的线程ID //id.y 第Y行的线程ID uint f = id.x + id.y * 32 * 64; // uint f = id.x + id.y * 32 * 64; float3 pos = float3(id.x, id.y, id.z) / 2 + originPos; //计算出原始坐标 dataBuffer[f].uv = ((pos - originPos) / 2048) * 2; //计算出每个点的uv //dataBuffer[f].uv = ((pos - originPos) / 2048) * 2; //计算出每个点的uv if (init == 0)//初始化点 { dataBuffer[f].pos = pos; dataBuffer[f].velocity = float3(0, 0, 0); }else { float3 dis = dataBuffer[f].pos - mousePos; //计算出当前坐标与鼠标点间的向量 float vel = clamp(radius - length(dis), 0.01, radius) * deltaTime * 20; //计算出力 dataBuffer[f].velocity += normalize(dis) * vel; //加上力 dataBuffer[f].velocity = normalize(dataBuffer[f].velocity) * clamp((length(dataBuffer[f].velocity) - deltaTime * 2), 0, radius); //限制力的范围,并且加上指向原始点的力 dataBuffer[f].pos = pos + dataBuffer[f].velocity; //根据力计算出坐标 } } ```

Unity3d 5.4.3版本 发布pc平台后转android平台发布 客户端部分图片纹理丢失

工程发布pc平台后转android平台发布,客户端部分图片纹理丢失,部分粒子效果变成黑块,部分ui图片变成黑块。 ![图片说明](https://img-ask.csdn.net/upload/201701/10/1484036172_502517.png) (正常) ![图片说明](https://img-ask.csdn.net/upload/201701/10/1484036146_423652.png) (纹理丢失) 版本替换成unity3d 5.4.4后 pc转android发布会导致客户端卡死在启动界面上,不再运行。 尝试过把shader放入project setting-》Graphics 但任然出现上述情况,希望有大神能给予指导

程序员的兼职技能课

获取讲师答疑方式: 在付费视频第一节(触摸命令_ALL)片头有二维码及加群流程介绍 限时福利 原价99元,今日仅需39元!购课添加小助手(微信号:csdn590)按提示还可领取价值800元的编程大礼包! 讲师介绍: 苏奕嘉&nbsp;前阿里UC项目工程师 脚本开发平台官方认证满级(六级)开发者。 我将如何教会你通过【定制脚本】赚到你人生的第一桶金? 零基础程序定制脚本开发课程,是完全针对零脚本开发经验的小白而设计,课程内容共分为3大阶段: ①前期将带你掌握Q开发语言和界面交互开发能力; ②中期通过实战来制作有具体需求的定制脚本; ③后期将解锁脚本的更高阶玩法,打通任督二脉; ④应用定制脚本合法赚取额外收入的完整经验分享,带你通过程序定制脚本开发这项副业,赚取到你的第一桶金!

Windows版YOLOv4目标检测实战:训练自己的数据集

课程演示环境:Windows10; cuda 10.2; cudnn7.6.5; Python3.7; VisualStudio2019; OpenCV3.4 需要学习ubuntu系统上YOLOv4的同学请前往:《YOLOv4目标检测实战:训练自己的数据集》 课程链接:https://edu.csdn.net/course/detail/28745 YOLOv4来了!速度和精度双提升! 与 YOLOv3 相比,新版本的 AP (精度)和 FPS (每秒帧率)分别提高了 10% 和 12%。 YOLO系列是基于深度学习的端到端实时目标检测方法。本课程将手把手地教大家使用labelImg标注和使用YOLOv4训练自己的数据集。课程实战分为两个项目:单目标检测(足球目标检测)和多目标检测(足球和梅西同时检测)。 本课程的YOLOv4使用AlexyAB/darknet,在Windows系统上做项目演示。包括:安装软件环境、安装YOLOv4、标注自己的数据集、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算)和先验框聚类分析。还将介绍改善YOLOv4目标检测性能的技巧。 除本课程《Windows版YOLOv4目标检测实战:训练自己的数据集》外,本人将推出有关YOLOv4目标检测的系列课程。请持续关注该系列的其它视频课程,包括: 《Windows版YOLOv4目标检测实战:人脸口罩佩戴检测》 《Windows版YOLOv4目标检测实战:中国交通标志识别》 《Windows版YOLOv4目标检测:原理与源码解析》

lena全身原图(非256*256版本,而是全身原图)

lena全身原图(非256*256版本,而是全身原图) lena原图很有意思,我们通常所用的256*256图片是在lena原图上截取了头部部分的256*256正方形得到的. 原图是花花公子杂志上的一个

快速入门Android开发 视频 教程 android studio

这是一门快速入门Android开发课程,顾名思义是让大家能快速入门Android开发。 学完能让你学会如下知识点: Android的发展历程 搭建Java开发环境 搭建Android开发环境 Android Studio基础使用方法 Android Studio创建项目 项目运行到模拟器 项目运行到真实手机 Android中常用控件 排查开发中的错误 Android中请求网络 常用Android开发命令 快速入门Gradle构建系统 项目实战:看美图 常用Android Studio使用技巧 项目签名打包 如何上架市场

Java调用微信支付

Java 使用微信支付 一. 准备工作 1.

汽车租赁管理系统需求分析规格说明书

汽车租赁管理系统需求分析规格说明书,这只是一个模板,如果有不会的可以借鉴一下,还是蛮详细的。。。。

C/C++跨平台研发从基础到高阶实战系列套餐

一 专题从基础的C语言核心到c++ 和stl完成基础强化; 二 再到数据结构,设计模式完成专业计算机技能强化; 三 通过跨平台网络编程,linux编程,qt界面编程,mfc编程,windows编程,c++与lua联合编程来完成应用强化 四 最后通过基于ffmpeg的音视频播放器,直播推流,屏幕录像,

程序员的算法通关课:知己知彼(第一季)

【超实用课程内容】 程序员对于算法一直又爱又恨!特别是在求职面试时,算法类问题绝对是不可逃避的提问点!本门课程作为算法面试系列的第一季,会从“知己知彼”的角度,聊聊关于算法面试的那些事~ 【哪些人适合学习这门课程?】 求职中的开发者,对于面试算法阶段缺少经验 想了解实际工作中算法相关知识 在职程序员,算法基础薄弱,急需充电 【超人气讲师】 孙秀洋&nbsp;| 服务器端工程师 硕士毕业于哈工大计算机科学与技术专业,ACM亚洲区赛铜奖获得者,先后在腾讯和百度从事一线技术研发,对算法和后端技术有深刻见解。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/27272 移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程无限观看时长,但是大家可以抓紧时间学习后一起讨论哦~

机器学习初学者必会的案例精讲

通过六个实际的编码项目,带领同学入门人工智能。这些项目涉及机器学习(回归,分类,聚类),深度学习(神经网络),底层数学算法,Weka数据挖掘,利用Git开源项目实战等。

Python入门视频精讲

Python入门视频培训课程以通俗易懂的方式讲解Python核心技术,Python基础,Python入门。适合初学者的教程,让你少走弯路! 课程内容包括:1.Python简介和安装 、2.第一个Python程序、PyCharm的使用 、3.Python基础、4.函数、5.高级特性、6.面向对象、7.模块、8.异常处理和IO操作、9.访问数据库MySQL。教学全程采用笔记+代码案例的形式讲解,通俗易懂!!!

我以为我对Mysql事务很熟,直到我遇到了阿里面试官

太惨了,面试又被吊打

深度学习原理+项目实战+算法详解+主流框架(套餐)

深度学习系列课程从深度学习基础知识点开始讲解一步步进入神经网络的世界再到卷积和递归神经网络,详解各大经典网络架构。实战部分选择当下最火爆深度学习框架PyTorch与Tensorflow/Keras,全程实战演示框架核心使用与建模方法。项目实战部分选择计算机视觉与自然语言处理领域经典项目,从零开始详解算法原理,debug模式逐行代码解读。适合准备就业和转行的同学们加入学习! 建议按照下列课程顺序来进行学习 (1)掌握深度学习必备经典网络架构 (2)深度框架实战方法 (3)计算机视觉与自然语言处理项目实战。(按照课程排列顺序即可)

Java62数据提取代码

利用苹果手机微信下面的wx.data文件提取出62数据,通过62可以实现不同设备直接登陆,可以通过文件流的方式用脚本上传到服务器进行解析

Python代码实现飞机大战

文章目录经典飞机大战一.游戏设定二.我方飞机三.敌方飞机四.发射子弹五.发放补给包六.主模块 经典飞机大战 源代码以及素材资料(图片,音频)可从下面的github中下载: 飞机大战源代码以及素材资料github项目地址链接 ————————————————————————————————————————————————————————— 不知道大家有没有打过飞机,喜不喜欢打飞机。当我第一次接触这个东西的时候,我的内心是被震撼到的。第一次接触打飞机的时候作者本人是身心愉悦的,因为周边的朋友都在打飞机, 每

2018年全国大学生计算机技能应用大赛决赛 大题

2018年全国大学生计算机技能应用大赛决赛大题,程序填空和程序设计(侵删)

Lena图像处理测试专业用图,高清完整全身原图

Lena图像处理测试专业用图,高清完整全身原图,该图片很好的包含了平坦区域、阴影和纹理等细节,这些都有益于测试各种不同的图像处理算法。它是一幅很好的测试照片!其次,由于这是一个非常有魅力女人的照片。

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

verilog实现地铁系统售票

使用 verilog 实现地铁售票

Python+OpenCV计算机视觉

Python+OpenCV计算机视觉系统全面的介绍。

Python可以这样学(第四季:数据分析与科学计算可视化)

董付国老师系列教材《Python程序设计(第2版)》(ISBN:9787302436515)、《Python可以这样学》(ISBN:9787302456469)配套视频,在教材基础上又增加了大量内容,通过实例讲解numpy、scipy、pandas、statistics、matplotlib等标准库和扩展库用法。

150讲轻松搞定Python网络爬虫

【为什么学爬虫?】 &nbsp; &nbsp; &nbsp; &nbsp;1、爬虫入手容易,但是深入较难,如何写出高效率的爬虫,如何写出灵活性高可扩展的爬虫都是一项技术活。另外在爬虫过程中,经常容易遇到被反爬虫,比如字体反爬、IP识别、验证码等,如何层层攻克难点拿到想要的数据,这门课程,你都能学到! &nbsp; &nbsp; &nbsp; &nbsp;2、如果是作为一个其他行业的开发者,比如app开发,web开发,学习爬虫能让你加强对技术的认知,能够开发出更加安全的软件和网站 【课程设计】 一个完整的爬虫程序,无论大小,总体来说可以分成三个步骤,分别是: 网络请求:模拟浏览器的行为从网上抓取数据。 数据解析:将请求下来的数据进行过滤,提取我们想要的数据。 数据存储:将提取到的数据存储到硬盘或者内存中。比如用mysql数据库或者redis等。 那么本课程也是按照这几个步骤循序渐进的进行讲解,带领学生完整的掌握每个步骤的技术。另外,因为爬虫的多样性,在爬取的过程中可能会发生被反爬、效率低下等。因此我们又增加了两个章节用来提高爬虫程序的灵活性,分别是: 爬虫进阶:包括IP代理,多线程爬虫,图形验证码识别、JS加密解密、动态网页爬虫、字体反爬识别等。 Scrapy和分布式爬虫:Scrapy框架、Scrapy-redis组件、分布式爬虫等。 通过爬虫进阶的知识点我们能应付大量的反爬网站,而Scrapy框架作为一个专业的爬虫框架,使用他可以快速提高我们编写爬虫程序的效率和速度。另外如果一台机器不能满足你的需求,我们可以用分布式爬虫让多台机器帮助你快速爬取数据。 &nbsp; 从基础爬虫到商业化应用爬虫,本套课程满足您的所有需求! 【课程服务】 专属付费社群+每周三讨论会+1v1答疑

获取Linux下Ftp目录树并逐步绑定到treeview

在linux下抓取目录树,双击后获取该节点子节点(逐步生成)。另外有两个类,一个是windows下的(一次性获取目录树),一个是linux下的(足部获取目录树)

YOLOv3目标检测实战系列课程

《YOLOv3目标检测实战系列课程》旨在帮助大家掌握YOLOv3目标检测的训练、原理、源码与网络模型改进方法。 本课程的YOLOv3使用原作darknet(c语言编写),在Ubuntu系统上做项目演示。 本系列课程包括三门课: (1)《YOLOv3目标检测实战:训练自己的数据集》 包括:安装darknet、给自己的数据集打标签、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。 (2)《YOLOv3目标检测:原理与源码解析》讲解YOLOv1、YOLOv2、YOLOv3的原理、程序流程并解析各层的源码。 (3)《YOLOv3目标检测:网络模型改进方法》讲解YOLOv3的改进方法,包括改进1:不显示指定类别目标的方法 (增加功能) ;改进2:合并BN层到卷积层 (加快推理速度) ; 改进3:使用GIoU指标和损失函数 (提高检测精度) ;改进4:tiny YOLOv3 (简化网络模型)并介绍 AlexeyAB/darknet项目。

手把手实现Java图书管理系统(附源码)

【超实用课程内容】 本课程演示的是一套基于Java的SSM框架实现的图书管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的java人群。详细介绍了图书管理系统的实现,包括:环境搭建、系统业务、技术实现、项目运行、功能演示、系统扩展等,以通俗易懂的方式,手把手的带你从零开始运行本套图书管理系统,该项目附带全部源码可作为毕设使用。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/27513 移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程2年有效观看时长,大家可以抓紧时间学习后一起讨论哦~ 【学员专享增值服务】 源码开放 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化

微信小程序开发实战之番茄时钟开发

微信小程序番茄时钟视频教程,本课程将带着各位学员开发一个小程序初级实战类项目,针对只看过官方文档而又无从下手的开发者来说,可以作为一个较好的练手项目,对于有小程序开发经验的开发者而言,可以更好加深对小程序各类组件和API 的理解,为更深层次高难度的项目做铺垫。

Java 最常见的 200+ 面试题:面试必备

这份面试清单是从我 2015 年做了 TeamLeader 之后开始收集的,一方面是给公司招聘用,另一方面是想用它来挖掘在 Java 技术栈中,还有那些知识点是我不知道的,我想找到这些技术盲点,然后修复它,以此来提高自己的技术水平。虽然我是从 2009 年就开始参加编程工作了,但我依旧觉得自己现在要学的东西很多,并且学习这些知识,让我很有成就感和满足感,那所以何乐而不为呢? 说回面试的事,这份面试...

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

三个项目玩转深度学习(附1G源码)

从事大数据与人工智能开发与实践约十年,钱老师亲自见证了大数据行业的发展与人工智能的从冷到热。事实证明,计算机技术的发展,算力突破,海量数据,机器人技术等,开启了第四次工业革命的序章。深度学习图像分类一直是人工智能的经典任务,是智慧零售、安防、无人驾驶等机器视觉应用领域的核心技术之一,掌握图像分类技术是机器视觉学习的重中之重。针对现有线上学习的特点与实际需求,我们开发了人工智能案例实战系列课程。打造:以项目案例实践为驱动的课程学习方式,覆盖了智能零售,智慧交通等常见领域,通过基础学习、项目案例实践、社群答疑,三维立体的方式,打造最好的学习效果。

微信小程序 实例汇总 完整项目源代码

微信小程序 实例汇总 完整项目源代码

基于西门子S7—1200的单部六层电梯设计程序,1部6层电梯

基于西门子S7—1200的单部六层电梯设计程序,1部6层电梯。 本系统控制六层电梯, 采用集选控制方式。 为了完成设定的控制任务, 主要根据电梯输入/输出点数确定PLC 的机型。 根据电梯控制的要求,

相关热词 c#对文件改写权限 c#中tostring c#支付宝回掉 c#转换成数字 c#判断除法是否有模 c# 横向chart c#控件选择多个 c#报表如何锁定表头 c#分级显示数据 c# 不区分大小写替换
立即提问
相关内容推荐