public ShaderVariant(Shader shader, PassType passType, params string[] keywords) { this.shader = shader; this.passType = passType; this.keywords = keywords; ShaderVariantCollection.ShaderVariant.Internal_CheckVariant(shader, passType, keywords); }
public FilterButterworth2(double frequency = 5, int sampleRate = 100, PassType passType = PassType.Lowpass, double resonance = 1.4142135623730950488016887242097) { this.resonance = resonance; this.frequency = frequency; this.sampleRate = sampleRate; this.passType = passType; switch (passType) { case PassType.Lowpass: c = 1.0f / (double)Math.Tan(Math.PI * frequency / sampleRate); a1 = 1.0f / (1.0f + resonance * c + c * c); a2 = 2f * a1; a3 = a1; b1 = 2.0f * (1.0f - c * c) * a1; b2 = (1.0f - resonance * c + c * c) * a1; break; case PassType.Highpass: c = (double)Math.Tan(Math.PI * frequency / sampleRate); a1 = 1.0f / (1.0f + resonance * c + c * c); a2 = -2f * a1; a3 = a1; b1 = 2.0f * (c * c - 1.0f) * a1; b2 = (1.0f - resonance * c + c * c) * a1; break; } }
/// <summary> /// Sets only the sides defined as passable for the given pass type. /// </summary> public void AllowPassableAtSetSides(PassType passType) { switch (passType) { case PassType.Entering: isEnterableOnAll = false; Passable = true; break; case PassType.Leaving: isLeavableOnAll = false; Passable = true; break; case PassType.Atmospheric: isAtmosPassableOnAll = false; AtmosPassable = true; break; default: Logger.LogWarning("Unknown DirectionalPassable PassType. Doing nothing.", Category.Direction); break; } }
public DeltaQuery(PassType mode, object str, PassCategory cat, Color cfg) : this(mode, str, cat, new TextStyle(cfg)) { }
private bool ContainsInternal(Shader shader, PassType passType, string[] keywords);
private static extern void Internal_CheckVariant(Shader shader, PassType passType, string[] keywords);
private bool ContainsInternal(Shader shader, PassType passType, string[] keywords) { throw new NotImplementedException("なにこれ"); }
public void Add(string Key, PassType t, object s, PassCategory c, Color c_fg) { Add(Key, new QueryCriteria(t, s, c, c_fg)); }
public void Add(string Key, PassType t, object s) { Add(Key, t, s, PassCategory.DefaultRange); }
/** * Creates the DTW object and sets signal feature object. * * @param signal feature extractor object */ public Dtw(Extractor signal) { from = signal; points = new DtwPoint[signal.GetFramesCount()][]; distanceFn = new distanceFunction(Functions.euclideanDistance); passType = PassType.Neighbors; }
public DynamicTexture Construct(Entity entity, Vector3 position, Vector3 lookAt, int width, int height, string label, PassType type = PassType.Opaque) { var pipeline = new RenderPipeline(this.Device, new NullMeterRegistry()); var gBuffer = new GBuffer(this.Device, width, height); var viewPoint = new PerspectiveCamera(gBuffer.AspectRatio); viewPoint.Move(position, lookAt); var pass = new Pass(type, 0); var dynamicTexture = new DynamicTexture(entity, pipeline, viewPoint, gBuffer, pass, label); this.Container.Add(dynamicTexture); return(dynamicTexture); }
public PassBuffer(PassType type, int length) { this.elementType = type; this.array = new byte[type.ByteSize() * length]; }
public Pass(PassType type, int iteration) { this.Type = type; this.Iteration = iteration; }
/// <summary> /// Find fragments in the specified triangle. /// </summary> /// <param name="fragCoord0"></param> /// <param name="fragCoord1"></param> /// <param name="fragCoord2"></param> /// <param name="pointers"></param> /// <param name="group"></param> /// <param name="passBuffers"></param> /// <param name="result"></param> unsafe private static void FindFragmentsInTriangle(vec3 fragCoord0, vec3 fragCoord1, vec3 fragCoord2, void *[] pointers, LinearInterpolationInfoGroup group, PassBuffer[] passBuffers, List <Fragment> result) { int attributeCount = passBuffers.Length - 1; var pixelList = new List <vec3>(); FindPixelsAtTriangle(fragCoord0, fragCoord1, fragCoord2, pixelList); //OnSamePlane(fragCoord0, fragCoord1, fragCoord2, pixelList); for (int i = 0; i < pixelList.Count; i++) // for each pixel at this line.. { vec3 pixel = pixelList[i]; var fragment = new Fragment(pixel, attributeCount); float p0, p1, p2; LinearInterpolationTriangle(pixel, fragCoord0, fragCoord1, fragCoord2, out p0, out p1, out p2); for (int t = 0; t < attributeCount; t++) // new pass-buffer objects. { PassType passType = passBuffers[t + 1].elementType; fragment.attributes[t] = new PassBuffer(passType, 1); // only one element. } for (int attrIndex = 0; attrIndex < attributeCount; attrIndex++) // fill data in pass-buffer. { PassBuffer attribute = fragment.attributes[attrIndex]; void * fragmentAttribute = attribute.Mapbuffer().ToPointer(); switch (attribute.elementType) { case PassType.Float: { var fAttr = (float *)fragmentAttribute; var array = (float *)pointers[attrIndex]; fAttr[0] = array[group.array[0].gl_VertexID] * p0 + array[group.array[1].gl_VertexID] * p1 + array[group.array[2].gl_VertexID] * p2; } break; case PassType.Vec2: { var fAttr = (vec2 *)fragmentAttribute; var array = (vec2 *)pointers[attrIndex]; fAttr[0] = array[group.array[0].gl_VertexID] * p0 + array[group.array[1].gl_VertexID] * p1 + array[group.array[2].gl_VertexID] * p2; } break; case PassType.Vec3: { var fAttr = (vec3 *)fragmentAttribute; var array = (vec3 *)pointers[attrIndex]; fAttr[0] = array[group.array[0].gl_VertexID] * p0 + array[group.array[1].gl_VertexID] * p1 + array[group.array[2].gl_VertexID] * p2; } break; case PassType.Vec4: { var fAttr = (vec4 *)fragmentAttribute; var array = (vec4 *)pointers[attrIndex]; fAttr[0] = array[group.array[0].gl_VertexID] * p0 + array[group.array[1].gl_VertexID] * p1 + array[group.array[2].gl_VertexID] * p2; } break; case PassType.Mat2: { var fAttr = (mat2 *)fragmentAttribute; var array = (mat2 *)pointers[attrIndex]; fAttr[0] = array[group.array[0].gl_VertexID] * p0 + array[group.array[1].gl_VertexID] * p1 + array[group.array[2].gl_VertexID] * p2; } break; case PassType.Mat3: { var fAttr = (mat3 *)fragmentAttribute; var array = (mat3 *)pointers[attrIndex]; fAttr[0] = array[group.array[0].gl_VertexID] * p0 + array[group.array[1].gl_VertexID] * p1 + array[group.array[2].gl_VertexID] * p2; } break; case PassType.Mat4: { var fAttr = (mat4 *)fragmentAttribute; var array = (mat4 *)pointers[attrIndex]; fAttr[0] = array[group.array[0].gl_VertexID] * p0 + array[group.array[1].gl_VertexID] * p1 + array[group.array[2].gl_VertexID] * p2; } break; default: throw new NotDealWithNewEnumItemException(typeof(PassType)); } attribute.Unmapbuffer(); } result.Add(fragment); } }
/// <summary> /// 收集passtype-keyword /// </summary> /// <param name="passType"></param> /// <param name="material"></param> ShaderVariantCollection.ShaderVariant AddVariantOfPassTypeToCollection(PassType passType, Material material) { var shader = material.shader; var keywords = new List <string>(); var shaderAllkeyworlds = GetShaderAllKeyworlds(shader); //Fog if (shaderAllkeyworlds.Contains("FOG_LINEAR") || shaderAllkeyworlds.Contains("FOG_EXP") || shaderAllkeyworlds.Contains("FOG_EXP2")) { if (RenderSettings.fog) { switch (RenderSettings.fogMode) { case FogMode.Linear: keywords.Add("FOG_LINEAR"); break; case FogMode.Exponential: keywords.Add("FOG_EXP"); break; case FogMode.ExponentialSquared: keywords.Add("FOG_EXP2"); break; default: { break; } } } } //Instancing if (material.enableInstancing) { keywords.Add("INSTANCING_ON"); } //添加mat中的keyword foreach (var key in material.shaderKeywords) { keywords.Add(key); } //打开的global keyword foreach (var key in ForceEnabledGlobalKeywords) { if (shaderAllkeyworlds.Contains(key) /*&& Shader.IsKeywordEnabled(key)*/) { keywords.Add(key); } } //关闭的global keyword foreach (var key in ForceDisabledGlobalKeywords) { keywords.Remove(key); } return(CreateVariant(shader, passType, keywords.ToArray())); }
private bool AddInternal(Shader shader, PassType passType, string[] keywords);
public string[] keywords; // 0x10 // Constructors public ShaderVariant(Shader shader, PassType passType, params /* 0x00000001800D4E50-0x00000001800D4E60 */ string[] keywords) { this.shader = default; this.passType = default; this.keywords = default; } // 0x0000000180035770-0x00000001800357E0
private unsafe PassBuffer[] VertexShaderStage(int count, DrawElementsType type, IntPtr indices, VertexArrayObject vao, ShaderProgram program, GLBuffer indexBuffer) { PassBuffer[] passBuffers = null; VertexShader vs = program.VertexShader; if (vs == null) { return(passBuffers); } // init pass-buffers to record output from vertex shader. FieldInfo[] outFieldInfos = (from item in vs.outVariableDict select item.Value.fieldInfo).ToArray(); uint vertexCount = GetVertexCount(vao, indexBuffer, type); //int vertexSize = GetVertexSize(outFieldInfos); passBuffers = new PassBuffer[1 + outFieldInfos.Length]; void *[] pointers = new void *[1 + outFieldInfos.Length]; { // the first pass-buffer stores gl_Position. var passBuffer = new PassBuffer(PassType.Vec4, (int)vertexCount); pointers[0] = (void *)passBuffer.Mapbuffer(); passBuffers[0] = passBuffer; } for (int i = 1; i < passBuffers.Length; i++) { var outField = outFieldInfos[i - 1]; PassType passType = outField.FieldType.GetPassType(); var passBuffer = new PassBuffer(passType, (int)vertexCount); pointers[i] = (void *)passBuffer.Mapbuffer(); passBuffers[i] = passBuffer; } // execute vertex shader for each vertex. byte[] indexData = indexBuffer.Data; int indexLength = indexData.Length / ByteLength(type); GCHandle pin = GCHandle.Alloc(indexData, GCHandleType.Pinned); IntPtr pointer = pin.AddrOfPinnedObject(); var gl_VertexIDList = new List <uint>(); for (int indexID = indices.ToInt32() / ByteLength(type), c = 0; c < count && indexID < indexLength; indexID++, c++) { uint gl_VertexID = GetVertexID(pointer, type, indexID); if (gl_VertexIDList.Contains(gl_VertexID)) { continue; } else { gl_VertexIDList.Add(gl_VertexID); } var instance = vs.CreateCodeInstance() as VertexCodeBase; // an executable vertex shader. instance.gl_VertexID = (int)gl_VertexID; // setup gl_VertexID. // setup "in SomeType varName;" vertex attributes. Dictionary <uint, VertexAttribDesc> locVertexAttribDict = vao.LocVertexAttribDict; foreach (InVariable inVar in vs.inVariableDict.Values) // Dictionary<string, InVariable>.Values { VertexAttribDesc desc = null; if (locVertexAttribDict.TryGetValue(inVar.location, out desc)) { byte[] dataStore = desc.vbo.Data; int byteIndex = desc.GetDataIndex(gl_VertexID); VertexAttribType vertexAttribType = (VertexAttribType)desc.dataType; object value = dataStore.ToStruct(inVar.fieldInfo.FieldType, byteIndex); inVar.fieldInfo.SetValue(instance, value); } } // setup "uniform SomeType varName;" in vertex shader. Dictionary <string, UniformValue> nameUniformDict = program.nameUniformDict; foreach (UniformVariable uniformVar in vs.UniformVariableDict.Values) { string name = uniformVar.fieldInfo.Name; UniformValue obj = null; if (nameUniformDict.TryGetValue(name, out obj)) { if (obj.value != null) { uniformVar.fieldInfo.SetValue(instance, obj.value); } } } instance.main(); // execute vertex shader code. // copy data to pass-buffer. { PassBuffer passBuffer = passBuffers[0]; var array = (vec4 *)pointers[0]; array[gl_VertexID] = instance.gl_Position; } for (int i = 1; i < passBuffers.Length; i++) { var outField = outFieldInfos[i - 1]; var obj = outField.GetValue(instance); switch (outField.FieldType.GetPassType()) { case PassType.Float: { var array = (float *)pointers[i]; array[gl_VertexID] = (float)obj; } break; case PassType.Vec2: { var array = (vec2 *)pointers[i]; array[gl_VertexID] = (vec2)obj; } break; case PassType.Vec3: { var array = (vec3 *)pointers[i]; array[gl_VertexID] = (vec3)obj; } break; case PassType.Vec4: { var array = (vec4 *)pointers[i]; array[gl_VertexID] = (vec4)obj; } break; case PassType.Mat2: { var array = (mat2 *)pointers[i]; array[gl_VertexID] = (mat2)obj; } break; case PassType.Mat3: { var array = (mat3 *)pointers[i]; array[gl_VertexID] = (mat3)obj; } break; case PassType.Mat4: { var array = (mat4 *)pointers[i]; array[gl_VertexID] = (mat4)obj; } break; default: throw new NotImplementedException(); } // a general way to do this: //var obj = outField.GetValue(instance); //byte[] bytes = obj.ToBytes(); //PassBuffer passBuffer = passBuffers[i]; //var array = (byte*)passBuffer.AddrOfPinnedObject(); //for (int t = 0; t < bytes.Length; t++) //{ // array[gl_VertexID * vertexSize + t] = bytes[t]; //} } } pin.Free(); for (int i = 0; i < passBuffers.Length; i++) { passBuffers[i].Unmapbuffer(); } return(passBuffers); }
private extern bool AddInternal(Shader shader, PassType passType, string[] keywords);
public ImagePass(RenderTexture tex, PassType type) { Texture = tex; Type = type; }
public int GetFreeCharacterPassId(PassType passType) { switch (passType) { case PassType.Developer: using (MySqlConnection connection = new MySqlConnection(ConnectionString)) { connection.Open(); using (MySqlCommand command = new MySqlCommand(SelectMaxDevPassIdSql, connection)) { using (MySqlDataReader reader = command.ExecuteReader()) { if (reader.Read()) { if (reader.IsDBNull(0)) { return(1); } else { return(reader.GetInt32(0) + 1); } } } } } break; case PassType.Admin: using (MySqlConnection connection = new MySqlConnection(ConnectionString)) { connection.Open(); using (MySqlCommand command = new MySqlCommand(SelectMaxAdminPassId, connection)) { using (MySqlDataReader reader = command.ExecuteReader()) { if (reader.Read()) { if (reader.IsDBNull(0)) { return(1); } else { return(reader.GetInt32(0) + 1); } } } } } break; case PassType.Media: using (MySqlConnection connection = new MySqlConnection(ConnectionString)) { connection.Open(); using (MySqlCommand command = new MySqlCommand(SelectMaxMediaPassId, connection)) { using (MySqlDataReader reader = command.ExecuteReader()) { if (reader.Read()) { if (reader.IsDBNull(0)) { return(1); } else { return(reader.GetInt32(0) + 1); } } } } } break; case PassType.Regular: using (MySqlConnection connection = new MySqlConnection(ConnectionString)) { connection.Open(); using (MySqlCommand command = new MySqlCommand(SelectMaxRegularPassId, connection)) { using (MySqlDataReader reader = command.ExecuteReader()) { if (reader.Read()) { if (reader.IsDBNull(0)) { return(1); } else { return(reader.GetInt32(0) + 1); } } } } } break; } return(0); }
public void Add(string Key, PassType t, object s, PassCategory c) { Add(Key, new QueryCriteria(t, s, c)); }
public bool CreateNewCharacter(string playerSocialClubName, string firstName, string familyName, PassType passType, Gender gender, int mother, int father, int eyeColor, int hair, int hairColor, string faceFeatures) { return(CreateNewCharacter(playerSocialClubName, firstName, familyName, passType, gender, mother, father, eyeColor, hair, hairColor, faceFeatures, 0)); }
private static void Internal_CheckVariant(Shader shader, PassType passType, string[] keywords) { throw new NotImplementedException("なにこれ"); }
private bool CreateNewCharacter(string playerSocialClubName, string firstName, string familyName, PassType passType, Gender gender, int mother, int father, int eyeColor, int hair, int hairColor, string faceFeatures, int repeatCount) { if (firstName.Length > MaxCharacterFirstNameLength) { throw new CharacterFirstNameTooLongException(firstName); } if (familyName.Length > MaxCharacterFamilyNameLength) { throw new CharacterFamilyNameTooLongException(familyName); } string commandSql = null; int passId = GetFreeCharacterPassId(passType); long regDate = (long)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalMilliseconds; int bankId = GenerateCharacterBankIdOrPhone(); int phoneNumber = GenerateCharacterBankIdOrPhone(); switch (passType) { case PassType.Developer: commandSql = string.Format(InsertCharacterSql, playerSocialClubName, firstName, familyName, passId, "null", "null", "null", (int)gender, regDate, bankId, phoneNumber, mother, father, eyeColor, hair, hairColor, faceFeatures); break; case PassType.Admin: commandSql = string.Format(InsertCharacterSql, playerSocialClubName, firstName, familyName, "null", passId, "null", "null", (int)gender, regDate, bankId, phoneNumber, mother, father, eyeColor, hair, hairColor, faceFeatures); break; case PassType.Media: commandSql = string.Format(InsertCharacterSql, playerSocialClubName, firstName, familyName, "null", "null", passId, "null", (int)gender, regDate, bankId, phoneNumber, mother, father, eyeColor, hair, hairColor, faceFeatures); break; case PassType.Regular: commandSql = string.Format(InsertCharacterSql, playerSocialClubName, firstName, familyName, "null", "null", "null", passId, (int)gender, regDate, bankId, phoneNumber, mother, father, eyeColor, hair, hairColor, faceFeatures); break; } using (MySqlConnection connection = new MySqlConnection(ConnectionString)) { connection.Open(); using (MySqlCommand command = new MySqlCommand(commandSql, connection)) { try { return(command.ExecuteNonQuery() > 0); } catch (MySqlException e) { if (e.Number == 1062 && repeatCount <= DuplicateKeyOnRandomValueMaxRetryCount) { Log.Warn("Duplicate entry exception suppressed, repeatCount: {0}", repeatCount); return(CreateNewCharacter(playerSocialClubName, firstName, familyName, passType, gender, mother, father, eyeColor, hair, hairColor, faceFeatures, repeatCount + 1)); } throw; } } } }
public ICollection <ShaderVariant> GetVariants(Shader shader, PassType passType) => m_ShaderVariants.ContainsKey(shader) ? m_ShaderVariants[shader].Where(x => x.passType == passType).ToList() : new List <ShaderVariant>();
public IrPass(string name, PassType type) { Name = name; Type = type; }
private bool RemoveInternal(Shader shader, PassType passType, string[] keywords);
public IrPass(List <OpcodeToken> instructions, string name, PassType type) { Name = name; Type = type; }
public DeltaQuery(PassType mode, object str) : this(mode, str, PassCategory.DefaultRange) { }
public void TryPassBall(ulong passerPid, ulong targetPid, PassType type) { InvokeServerRpc(PassBallServer, passerPid, targetPid, type); }
public void PreviewRendererWriteRenderTileCallback(uint sessionId, uint x, uint y, uint w, uint h, uint sample, uint depth, PassType passtype, float[] pixels, int pixlen) { if (IsStopped || (sample > 5 && Session.Scene.Device.IsCpu && sample % 10 != 0)) { return; } DisplayBuffer(sessionId, x, y, w, h, passtype, ref pixels, pixlen, (int)depth); PreviewEventArgs.PreviewNotifier.NotifyIntermediateUpdate(RenderWindow); }
public FilterButterworth(float frequency, int sampleRate, PassType passType, float resonance) { this.resonance = resonance; this.frequency = frequency; this.sampleRate = sampleRate; this.passType = passType; switch (passType) { case PassType.Lowpass: c = 1.0f / (float)Math.Tan(Math.PI * frequency / sampleRate); a1 = 1.0f / (1.0f + resonance * c + c * c); a2 = 2f * a1; a3 = a1; b1 = 2.0f * (1.0f - c * c) * a1; b2 = (1.0f - resonance * c + c * c) * a1; break; case PassType.Highpass: c = (float)Math.Tan(Math.PI * frequency / sampleRate); a1 = 1.0f / (1.0f + resonance * c + c * c); a2 = -2f * a1; a3 = a1; b1 = 2.0f * (c * c - 1.0f) * a1; b2 = (1.0f - resonance * c + c * c) * a1; break; } }
public void PassBallClient(ulong passerPid, Vector3 pos, PassType type) { Player passer = GameManager.GetPlayerByNetworkID(passerPid); StartCoroutine(AutoCatchPass(GameManager.GetPlayer(), pos)); }
public PassResult WideOpenCatch(int catchRating, int specCatchRating, PassType type) { double yards = Math.Abs(type.GetYards()); if (type.OnTarget()) { double num = -0.005300 * catchRating * catchRating + 1.165 * catchRating + 35; //double num = Math.pow(64.9746 * Math.E, 0.0042 * (100 - catchRating)); int randNum = Random.GetInstance().Next(100); bool caught = num > randNum; if (!caught) { return(PassResult.Incomplete); } if (num - randNum > 15) { return(PassResult.In_Stride); } else { return(PassResult.Slowed); } } else if (yards < 1) { double rating = .75 * catchRating + .25 * specCatchRating; double num = 0.001000 * rating * rating + 0.7500 * rating + 10.00; int randNum = Random.GetInstance().Next(100); bool caught = num > randNum; if (!caught) { return(PassResult.Incomplete); } if (num - randNum > 25) { return(PassResult.Slowed); } else { return(PassResult.Dove); } } else if (yards < 3) { double num = 0.0; if (specCatchRating > 50) { num = 0.008200 * specCatchRating * specCatchRating - 0.33 * specCatchRating + 1; } else { num = 0.0008000 * specCatchRating * specCatchRating + 0.04000 * specCatchRating + 1.000; } int randNum = Random.GetInstance().Next(0, 100); bool caught = num > randNum; if (!caught) { return(PassResult.Incomplete); } else if (num - randNum > 25) { return(PassResult.Slowed); } else { return(PassResult.Dove); } } return(PassResult.Incomplete); }
private extern bool RemoveInternal(Shader shader, PassType passType, string[] keywords);
private extern bool ContainsInternal(Shader shader, PassType passType, string[] keywords);
/** * Sets the pass type. * * @param type pass type */ public void SetPassType(PassType type) { passType = type; }