public override void draw(GraphicsDevice device, Effect effect, DisplayParameters parameters) { AnimatedBodyPartGroup wheatBale = new AnimatedBodyPartGroup(ResourceBlock.getPathForResourceType(ResourceBlock.ResourceType.Wheat), 1.0f / 7.0f); AnimatedBodyPartGroup log = new AnimatedBodyPartGroup(ResourceBlock.getPathForResourceType(ResourceBlock.ResourceType.Wood), 1.0f / 7.0f); AnimatedBodyPartGroup standardBlock = new AnimatedBodyPartGroup(ResourceBlock.getPathForResourceType(ResourceBlock.ResourceType.standardBlock), 1.0f / 7.0f); wheatBale.setScale(1f / 7f); log.setScale(1f / 7f); standardBlock.setScale(1f / 7f); foreach (BlockLoc key in resourceBlocks.Keys) { switch (resourceBlocks[key].getResourceType()) { case ResourceBlock.ResourceType.Wood: log.setRootPartLocation(key.getMiddleInWorldSpace()); log.draw(device, effect); break; case ResourceBlock.ResourceType.Wheat: wheatBale.setRootPartLocation(key.getMiddleInWorldSpace()); wheatBale.draw(device, effect); break; case ResourceBlock.ResourceType.standardBlock: standardBlock.setRootPartLocation(key.getMiddleInWorldSpace()); standardBlock.draw(device, effect); break; } } foreach (Stockpile stockpile in stockpiles) { stockpile.draw(device, effect, parameters); } }
public override void draw(GraphicsDevice device, Effect effect, DisplayParameters parameters) { foreach (BlockLoc test in blocksToBeRemoved) { WorldMarkupHandler.addCharacter(ContentDistributor.getEmptyString() + @"worldMarkup\redCubeOutline.chr", test.toWorldSpaceVector3() + new Vector3(.5f, .5f, .5f), 1.1f / 7f, .6f); } }
public override void draw(GraphicsDevice device, Effect effect, DisplayParameters parameters) { foreach (BlockLoc test in plantBlocks.Keys) { string number = plantBlocks[test].getGrowthLevel() + ""; WorldMarkupHandler.addFlagPathWithPosition(ContentDistributor.getEmptyString() + @"worldMarkup\wheatGrowthStage" + number + ".chr", test.toWorldSpaceVector3() + new Vector3(.5f, -.5f, .5f)); } }
public int TargetUnitsInMeter = 100 * 100; // 100 units per cm, 100 cm in 1 m void OnEnable() { DisplayParameters displayParameters = DisplayParameters.Collect(); GetComponent <RectTransform>().localScale = new Vector3( displayParameters.Dpm.x / TargetUnitsInMeter, displayParameters.Dpm.y / TargetUnitsInMeter, 1f); }
void UpdateViewAndMaterialParameters(HmdParameters hmd, DisplayParameters display) { Distortion distortion = new Distortion(hmd.DistortionK1, hmd.DistortionK2); distortion.DistortionK1 = hmd.DistortionK1; distortion.DistortionK2 = hmd.DistortionK2; float zNear = _camWorldLeft.nearClipPlane; float zFar = _camWorldLeft.farClipPlane; Fov displayDistancesLeft = Calculator.GetFovDistancesLeft(display, hmd); // То, как должен видеть левый глаз свой кусок экрана. Без линзы. C учётом только размеров дисплея Fov fovDisplayTanAngles = displayDistancesLeft / hmd.ScreenToLensDist; // FoV шлема Fov hmdMaxFovTanAngles = Fov.AnglesToTanAngles(hmd.MaxFovAngles); // То, как должен видеть левый глаз свой кусок экрана. Без линзы. C учётом размеров дисплея и FoV шлема Fov fovEyeTanAglesLeft = Fov.Min(fovDisplayTanAngles, hmdMaxFovTanAngles); // То, как должен видеть левый глаз. Мнимое изображение (после увеличения идеальной линзой без искажений). С широким углом. Именно так надо снять сцену Fov fovWorldTanAnglesLeft = Calculator.DistortTanAngles(fovEyeTanAglesLeft, distortion); Matrix4x4 projWorldLeft; Matrix4x4 projWorldRight; Calculator.ComposeProjectionMatricesFromFovTanAngles(fovWorldTanAnglesLeft, zNear, zFar, out projWorldLeft, out projWorldRight); Matrix4x4 projEyeLeft; Matrix4x4 projEyeRight; Calculator.ComposeProjectionMatricesFromFovTanAngles(fovDisplayTanAngles, zNear, zFar, out projEyeLeft, out projEyeRight); _camWorldLeft.transform.localPosition = 0.5f * Vector3.left * hmd.InterlensDistance; _camWorldRight.transform.localPosition = 0.5f * Vector3.right * hmd.InterlensDistance; _camEyeLeft.transform.localPosition = 0.5f * Vector3.left * hmd.InterlensDistance; _camEyeRight.transform.localPosition = 0.5f * Vector3.right * hmd.InterlensDistance; _camWorldLeft.projectionMatrix = projWorldLeft; _camWorldRight.projectionMatrix = projWorldRight; _camWorldLeftScaler.SetFov(fovWorldTanAnglesLeft); _camWorldRightScaler.SetFov(fovWorldTanAnglesLeft.GetFlippedHorizontally()); _camEyeLeft.projectionMatrix = projEyeLeft; _camEyeRight.projectionMatrix = projEyeRight; EyeMaterialLeft.SetFloat("_DistortionK1", hmd.DistortionK1); EyeMaterialRight.SetFloat("_DistortionK1", hmd.DistortionK1); EyeMaterialLeft.SetFloat("_DistortionK2", hmd.DistortionK2); EyeMaterialRight.SetFloat("_DistortionK2", hmd.DistortionK2); }
void Update() { DisplayParameters newDisplay = DisplayParameters.Collect(); if (_hmdParamsDirty || !newDisplay.Equals(_display)) { UpdateViewAndMaterialParameters(HmdParameters.Instance, newDisplay); _hmdParamsDirty = false; _display = newDisplay; } }
public override void draw(GraphicsDevice device, Effect effect, DisplayParameters parameters) { lock (trees) { foreach (Tree toDraw in trees) { //toDraw.addToWorldMarkup(); toDraw.draw(device, effect); } } }
protected override void EvaluateOutputs() { DisplayParameters displayParams = new DisplayParameters(); displayParams.baseText = (string)settings[Math.Max(0, Math.Min(4, InInt(3)))].currentValue; displayParams.limit = (bool)settings[5].currentValue; displayParams.inputValueR = InValue(0); displayParams.inputValueG = InValue(1); displayParams.inputValueB = InValue(2); if (displayParams == lastDisplayParameters) { return; } StringBuilder message = new StringBuilder(displayParams.baseText); if (displayParams.limit && message.Length > limitLength) { message.Remove(limitLength, message.Length - limitLength); } message.Replace("{R}", "{0}"); message.Replace("{G}", "{1}"); message.Replace("{B}", "{2}"); string result = message.ToString(); try { result = string.Format(result, InValue(0), InValue(1), InValue(2)); } catch (IndexOutOfRangeException) { } catch (FormatException) { } if (displayParams.limit) { result = result.Substring(0, Math.Min(result.Length, limitLength)); } if (result == displayText && displayParams.limit == DisplayTextIsLimited) { return; } lastDisplayParameters = displayParams; displayText = result; DisplayTextChanged(result, displayParams.limit); }
void OnEnable() { _display = null; _camWorldLeft.transform.localRotation = Quaternion.identity; _camWorldRight.transform.localRotation = Quaternion.identity; _camWorldLeftScaler = _camWorldLeft.GetComponentInChildren <FovScaler>(); _camWorldRightScaler = _camWorldRight.GetComponentInChildren <FovScaler>(); _camEyeLeft.transform.localRotation = Quaternion.identity; _camEyeRight.transform.localRotation = Quaternion.identity; OnHmdParamsChanged(HmdParameters.Instance); HmdParameters.Instance.ParamsChanged.AddListener(OnHmdParamsChanged); }
public override void draw(GraphicsDevice device, Effect effect, DisplayParameters parameters) { AnimatedBodyPartGroup block = new AnimatedBodyPartGroup(ContentDistributor.getEmptyString() + @"worldMarkup\" + markerName + ".chr", 1.0f / 7.0f); block.setScale(1f / 12f); foreach (BlockLoc test in blocksToBuild.Keys) { //WorldMarkupHandler.addCharacter(ContentDistributor.getEmptyString()+@"worldMarkup\"+markerName+".chr", // test.toWorldSpaceVector3() + new Vector3(.5f, .5f, .5f), 1.0f/12.0f,.6f); block.setRootPartLocation(test.toWorldSpaceVector3() + new Vector3(.5f, .5f, .5f)); effect.Parameters["xOpacity"].SetValue(.7f); effect.Parameters["xTint"].SetValue(ColorPallete.getColorFromByte(blocksToBuild[test]).ToVector4() * 1.2f); block.draw(device, effect); effect.Parameters["xTint"].SetValue(Color.White.ToVector4()); effect.Parameters["xOpacity"].SetValue(1f); } }
static void PrintDisplayParameters(DisplayParameters displayParams) { if (displayParams.IsDigital) { Console.WriteLine($"Digital display type: {displayParams.DigitalDisplayType}"); Console.WriteLine($"VESA DFP 1.x TMDS CRGB compatible? {displayParams.IsDFPTMDSCompatible}"); } else { Console.WriteLine($"Analog display type: {displayParams.AnalogDisplayType}"); Console.WriteLine($"Blank-to-black expected? {displayParams.IsBlankToBlackExpected}"); Console.WriteLine($"Composite sync supported? {displayParams.IsCompositeSyncSupported}"); Console.WriteLine($"Separate sync supported? {displayParams.IsSeparateSyncSupported}"); Console.WriteLine($"Sync on green supported? {displayParams.IsSyncOnGreenSupported}"); Console.WriteLine($"VSync serrated on composite? {displayParams.IsVSyncSerratedOnComposite}"); Console.WriteLine($"Video white level: {displayParams.VideoWhiteLevel}"); } Console.WriteLine(); PrintChromaticityCoordinates(displayParams.ChromaticityCoordinates); Console.WriteLine(); try { Console.WriteLine($"Gamma: {displayParams.DisplayGamma}"); } catch (Exception) { } if (!displayParams.IsProjector) { Console.WriteLine($"Display size (in.): {displayParams.DisplaySizeInInch}"); Console.WriteLine($"Physical width (cm.): {displayParams.PhysicalWidth}"); Console.WriteLine($"Physical height (cm.): {displayParams.PhysicalHeight}"); } Console.WriteLine($"DPMS active-off supported? {displayParams.IsActiveOffSupported}"); Console.WriteLine($"Default GTF supported? {displayParams.IsDefaultGTFSupported}"); Console.WriteLine($"Digital display? {displayParams.IsDigital}"); Console.WriteLine($"Preferred timing mode available? {displayParams.IsPreferredTimingModeAvailable}"); Console.WriteLine($"Preferred timing mode includes native info? {displayParams.IsPreferredTimingModeAvailable}"); Console.WriteLine($"Projector display? {displayParams.IsProjector}"); Console.WriteLine($"Standard sRBG color space? {displayParams.IsStandardSRGBColorSpace}"); Console.WriteLine($"DPMS standby supported {displayParams.IsStandbySupported}"); Console.WriteLine($"DPMS suspend supported? {displayParams.IsSuspendSupported}"); }
public MainWindow() { InitializeComponent(); ImageInfo = new ImageInformation(); DisplayControl = new DisplayParameters(); IsLeftMouseButtonDown = false; ButtonImageManipulation.IsChecked = false; DetectionResults = new DetectionResult(); MeasurementResults = new MeasurementResult(); DataGridMeasurementResult.ItemsSource = MeasurementResults.Result; DataGridDetectionResult.ItemsSource = DetectionResults.Result; backgroundWorker = new BackgroundWorker() { WorkerSupportsCancellation = true, WorkerReportsProgress = true }; backgroundWorker.DoWork += new DoWorkEventHandler(backgroundWorker_DoWork); backgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(backgroundWorker_RunWorkerCompleted); backgroundWorker.ProgressChanged += new ProgressChangedEventHandler(backgroundWorker_ProgressChanged); }
public void draw(GraphicsDevice device, Effect effect, DisplayParameters parameters) { string path = @"worldMarkup\farmMarker.chr"; path = ResourceBlock.getPathForResourceType(typeToStore); AnimatedBodyPartGroup character = new AnimatedBodyPartGroup(ContentDistributor.getEmptyString() + path, 1.0f / 7.0f); float opacity = .2f; if (!parameters.hasParameter(DisplayParameter.drawStockpiles)) { opacity = .1f; } //forward rendering is faster here effect.Parameters["xOpacity"].SetValue(opacity); character.setScale(1f / 7f); foreach (BlockLoc test in storageSpace) { character.setRootPartLocation(test.toWorldSpaceVector3() + new Vector3(.5f, .5f, .5f)); character.draw(device, effect); } effect.Parameters["xOpacity"].SetValue(1); }
public void displayIslands(GraphicsDevice device, Effect effect, BoundingFrustum frustrum, DisplayParameters displayParameters) { islandManager.display(device, effect, frustrum, displayParameters); }
public void display(GraphicsDevice device, Effect effect, BoundingFrustum frustrum, DisplayParameters parameters) { lock (islands) { foreach (Island island in islands) { if (frustrum.Intersects(island.getBoundingBox())) { island.display(device, effect, parameters); } } } }
public void display(GraphicsDevice device, Effect effect, IslandLocationProfile locationProfile, DisplayParameters parameters) { foreach (JobSite site in jobSites) { site.draw(device, effect, parameters); } }
public void display(GraphicsDevice device, Effect effect, DisplayParameters parameters) { chunkSpace.display(device, effect); setPieceManager.display(device, effect); jobSiteManager.display(device, effect, getLocationProfile(), parameters); }
public abstract void draw(GraphicsDevice device, Effect effect, DisplayParameters parameters);
public void SetCurrentDiffParameters() { DisplayParameters dp = DiffMenu.GetComponent <DisplayParameters>(); gobj.setCustomRules(dp.currentTv, dp.currentDv); }
public override void draw(GraphicsDevice device, Effect effect, DisplayParameters parameters) { WorldMarkupHandler.addCharacter(ContentDistributor.getEmptyString() + @"boats\greenOnePersonBoat.chr", objectLoc.toWorldSpaceVector3() + new Vector3(.5f, 0, .5f), IslandGame.GameWorld.Boat.SCALE, .5f); }