คำถามติดแท็ก hlsl

ภาษาเงาที่เป็นกรรมสิทธิ์ซึ่งพัฒนาโดย Microsoft สำหรับใช้กับ Microsoft Direct3D API


1
เกม AAA ใช้เนื้อสัมผัสนี้ในส่วนของการจับคู่โทนเสียงได้อย่างไร
ฉันพบว่า Battlefield 3 และ Saint's Row the Third ใช้พื้นผิวนี้ในขั้นตอนสุดท้ายของการทำแผนที่โทนสี ทุกคนสามารถแชร์ลิงก์ไปยังบทความเกี่ยวกับวิธีใช้พื้นผิวนี้ได้หรือไม่? UPDATE:เนื่องจากมีตัวอย่างใด ๆ ของการใช้งานการจัดระดับสีในสุทธิฉันจะโพสต์ตัวอย่างที่รวดเร็วและสกปรกของฉันสำหรับ XNA 4.0 สิ่งนี้ไม่ทำอะไรนอกจากสร้าง colormap 2d เริ่มต้นตั้งแต่เริ่มต้นบน GPU คัดลอกเนื้อหาลงในพื้นผิว 3 มิติบน CPU และทำการแก้ไขสีจริงด้วยรหัส shader จากบทความที่ให้ไว้ในคำตอบ ตัวอย่างการแก้ไขสี XNA 4.0 หากคุณต้องการทราบว่าคุณสามารถทำอะไรกับสิ่งนี้ดูที่นี่: http://the-witness.net/news/2012/08/fun-with-in-engine-color-grading/ ในระยะสั้นผู้เขียนอธิบายว่าคุณสามารถสร้างภาพหน้าจอของภาพปกติในเกมของคุณด้วยจานสีเริ่มต้นที่ด้านบนดำเนินการแก้ไขภาพหน้าจอใน photoshop ตัดและคัดลอกจานแก้ไขสีที่ผิดรูปลงในเครื่องยนต์และมี การแก้ไขสีนั้นจะใช้สำหรับทุกฉากในเกมโดยอัตโนมัติ
43 textures  hlsl 

5
นักแสดงในเกมควรมีความรับผิดชอบในการวาดภาพตนเองหรือไม่?
ฉันยังใหม่ต่อการพัฒนาเกม แต่ไม่ได้เขียนโปรแกรม ฉัน (อีกครั้ง) เล่นกับเกมประเภท Pong โดยใช้canvasองค์ประกอบของ JavaScript ฉันสร้างPaddleวัตถุที่มีคุณสมบัติดังต่อไปนี้ ... width height x y colour ฉันยังมีPongวัตถุที่มีคุณสมบัติเช่น ... width height backgroundColour draw(). draw()วิธีการในปัจจุบันคือการรีเซ็ตcanvasและที่เป็นที่คำถามขึ้นมา ควรPaddleวัตถุมีdraw()วิธีการรับผิดชอบสำหรับการวาดภาพหรือควรdraw()ของPongวัตถุต้องรับผิดชอบสำหรับการวาดภาพของนักแสดง (ฉันคิดว่าเป็นคำที่ถูกต้องโปรดแก้ไขฉันหากฉันไม่ถูกต้อง) ฉันคิดว่ามันจะเป็น advantagous สำหรับPaddleการวาดตัวเองที่ผมยกตัวอย่างวัตถุสองและPlayer Enemyถ้ามันไม่ได้อยู่ในPongของdraw()ฉันจะต้องเขียนรหัสที่คล้ายกันสองครั้ง การปฏิบัติที่ดีที่สุดที่นี่คืออะไร? ขอบคุณ

2
ฉันจะสร้างเลนส์มุมกว้าง / เลนส์ Fisheye ด้วย HLSL ได้อย่างไร
อะไรคือแนวคิดที่จะต้องดำเนินการเพื่อให้ได้ผลของเลนส์มุมกว้างที่มีความแตกต่างกัน? Pseudocode และคำอธิบายเฉพาะที่อ้างอิงถึงขั้นตอนต่าง ๆ ของไปป์ไลน์เนื้อหารวมถึงข้อมูลใดที่จำเป็นต้องส่งผ่านจากซอร์สโค้ดไปยัง HLSL จะมีประโยชน์มาก นอกจากนี้อะไรคือความแตกต่างระหว่างการนำเลนส์มุมกว้างไปใช้กับเลนส์ฟิชอาย?

12
ทรัพยากรที่ดีสำหรับการเรียนรู้ HLSL คืออะไร [ปิด]
ครั้งสุดท้ายที่ฉันลองเรียนรู้ HLSL ฉันทำ shader สองสามครั้งและส่วนใหญ่เข้าใจในสิ่งที่ฉันทำ แต่ฉันยังรู้สึกเหมือนกำลังสะดุดในความมืด สิ่งที่ฉันได้เรียนรู้ส่วนใหญ่มาจากการโพสต์บล็อกต่าง ๆ ที่ไม่ได้อธิบายสิ่งที่ดีมาก นอกจากนี้เอกสารใน MSDN ดูเหมือนจะเป็นการอ้างอิงฟังก์ชั่นมากกว่า ฉันจะเรียนรู้ที่จะไม่เพียง แต่เขียน HLSL แต่เรียนรู้เทคนิคการเขียนเฉดสีได้ที่ใด
28 shaders  hlsl 

3
วิธีที่ดีที่สุดในการปิดบังสไปรต์ 2D ใน XNA
ฉันกำลังพยายามปกปิดผีสางบ้าง แทนที่จะอธิบายเป็นคำฉันได้สร้างภาพตัวอย่าง: บริเวณที่สวมหน้ากาก (สีขาว) ทีนี้สไปรท์สีแดงที่ต้องถูกครอบตัด ผลสุดท้าย ตอนนี้ฉันทราบแล้วว่าใน XNA คุณสามารถทำสองสิ่งเพื่อบรรลุเป้าหมายนี้: ใช้ Buffer ฉลุ ใช้ Pixel Shader ฉันได้ลองทำพิกเซลเชดเดอร์ซึ่งทำสิ่งนี้เป็นหลัก: float4 main(float2 texCoord : TEXCOORD0) : COLOR0 { float4 tex = tex2D(BaseTexture, texCoord); float4 bitMask = tex2D(MaskTexture, texCoord); if (bitMask.a > 0) { return float4(tex.r, tex.g, tex.b, tex.a); } else { return float4(0, 0, …
24 xna  2d  hlsl  masking 

7
หนังสือ Shader ที่ทันสมัย? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ฉันสนใจที่จะเรียนรู้เกี่ยวกับ Shaders: พวกเขาจะใช้อะไรเมื่อไหร่และจะใช้อะไรและจะใช้อย่างไร (โดยเฉพาะฉันสนใจผลของ Water and Bloom แต่ฉันรู้ใกล้เคียงกับ 0 เกี่ยวกับ Shaders ดังนั้นฉันต้องมีการแนะนำทั่วไป) ฉันเห็นหนังสือมากมายที่มีอายุสองสามปีดังนั้นฉันจึงไม่รู้ว่าพวกเขายังใช้อยู่หรือไม่ ฉันกำลังกำหนดเป้าหมาย XNA 4.0 ในขณะนี้ (ซึ่งฉันเชื่อว่าหมายถึง HLSL Shader สำหรับ Shader Model 4.0) แต่สิ่งใดก็ตามที่เป็นเป้าหมายของ DirectX 11 และ OpenGL 4 จะเป็นประโยชน์จริง ๆ ฉันคิดว่า

2
โครงร่างสีขาวแปลก ๆ รอบตัวแบบ
ฉันกำลังทำงานกับเกมใน XNA 4 และฉันเพิ่งเปลี่ยนไปใช้การแรเงาที่รอการตัดบัญชีตามคู่มือนี้ มีโครงร่างสีขาวแปลก ๆ ปรากฏขึ้นในแบบจำลองของฉันในตอนนี้และฉันไม่แน่ใจว่าเกิดจากอะไร ฉันคิดว่าบางทีการขาดความแม่นยำของเป้าหมายการเรนเดอร์ปกติหรือการเรนเดอร์เป้าหมายแบบลึก แต่การเพิ่มพวกมันเป็น 64 บิต (Rgba64) แทนที่จะเป็น 32 (สี) ไม่ได้ช่วยอะไรเลย ฉันก็คิดว่ามันอาจจะมีปัญหากับการคำนวณแบบ specular ดังนั้นฉันจึงลองตั้ง specular เป็น 0 แต่นั่นก็ไม่ได้ช่วยเช่นกัน การดีบักพิกเซลใน PIX แสดงว่าค่าการกระจายกำลังถูกคำนวณเป็นสีขาวเกือบสำหรับพิกเซลนั้น ความคิดใด ๆ ฉันรวมรูปภาพของปัญหาไว้ด้านล่างแล้วจะเห็นได้ง่ายขนาดเต็ม Pixel Shader: float4 PixelShaderFunction(VertexShaderOutput input) : COLOR0 { input.ScreenPosition.xy /= input.ScreenPosition.w; float2 texCoord = 0.5f * (float2(input.ScreenPosition.x, -input.ScreenPosition.y) + 1) - …
19 xna  hlsl 

1
แสดงผลน้ำมัน / น้ำเสีย?
ตัวช่วยสร้าง shader ใด ๆ ออกไปมีความคิดว่าจะทำเอฟเฟกต์น้ำที่มันหรือมีมลภาวะได้อย่างไรเช่นนี้: ตามหลักการแล้วน้ำจะไม่เป็นน้ำมันอย่างสม่ำเสมอ แต่สามารถสร้างน้ำมันได้จากแหล่งกำเนิดบางแหล่ง (เช่นท่อระบายน้ำเสียจากโรงงานเคมี) จากนั้นกระจายไปทั่วร่างกายน้ำ ความคิดของฉันสำหรับส่วนนี้คือการเก็บ "แผนที่น้ำมัน" เป็นพื้นผิว 2D ที่กำหนดความหนาแน่นของน้ำมันในแต่ละจุดบนผิวน้ำ มันจะกระจายและเคลื่อนที่ตามธรรมชาติด้วย water vel; ocity ณ จุดนั้น (ฉันมีการจำลองอนุภาคคลื่นสำหรับคลื่นแบบไดนามิกและฉันกำลังทำสิ่งที่คล้ายกับโฟมบนผิวน้ำ) อย่างไรก็ตามฉันไม่แน่ใจว่าร่างกายจะถูกต้องอย่างไรเนื่องจากน้ำมันอาจไม่เคลื่อนที่ด้วยความเร็วเท่ากับน้ำ และฉันก็ไม่รู้ว่าจะทำสี trippy เหล่านั้นได้อย่างไร :-) คิด?

3
ฉันจะสร้างเอฟเฟกต์แสงแบบนี้ได้อย่างไร
นี่เป็นแสง 2d ที่สวยที่สุดที่ฉันเคยเห็นมาและฉันก็อยากจะแสดงแสงแบบนี้เช่นกัน ฉันต้องทำอย่างไร? ฉันไม่สนใจเกี่ยวกับฟิสิกส์หรือการจำลองอนุภาค - ฉันแค่อยากรู้เกี่ยวกับแสง นี่คือวิดีโอสำหรับการอ้างอิง: http://www.youtube.com/watch?v=BIQRhOFkvQY http://www.youtube.com/watch?v=tnTYXPuecMs http://www.youtube.com/watch?v=rhC_jVM8IYU http://www.youtube.com/watch?v=_Aw5BdjWqqU หรือคุณอาจจะดาวน์โหลดมลพิษ Planet 2 ที่นี่
18 xna  lighting  hlsl 

1
ddx (hlsl) ทำอะไรได้จริง?
ฉันสับสนเล็กน้อย เอกสารอย่างเป็นทางการ ( http://msdn.microsoft.com/en-us/library/windows/desktop/bb509588(v=vs.85).aspx ) กล่าวว่า ddx (อินพุต) เป็นอนุพันธ์ย่อยของอินพุตด้วยความเคารพ ถึง "การเว้นวรรค x หน้าจอพิกัด" แคลคูลัสของฉันใช้ได้ แต่มันจะบอกได้อย่างไรว่าอินพุทนั้นมาจากไหน? ถ้าฉันผ่านฟังก์ชั่นก็ดีฉันสามารถจินตนาการได้ว่ามันจะทำอะไร แต่อนุพันธ์ของตัวเลขนั้นจะเป็นศูนย์เสมอ ... ? มันเป็นเพียงการปรับขนาดหรือไม่? เช่นนี้จะถูกลดขนาดเป็นหนึ่งในสิบของขนาดระยะทางนี้ดังนั้นจะคืนหนึ่งในสิบหรือไม่ แต่ไม่จำเป็นต้องป้อนข้อมูล ... บางคนสามารถให้คำอธิบายอย่างรวดเร็วว่าเกิดอะไรขึ้นจริงหรือ
17 hlsl 

4
HDR ทำงานอย่างไร
ฉันพยายามเข้าใจว่า HDR คืออะไรและทำงานอย่างไร ฉันเข้าใจแนวคิดพื้นฐานและมีความคิดเล็กน้อยเกี่ยวกับวิธีการนำไปใช้กับ D3D / hlsl อย่างไรก็ตามมันยังคงมีหมอกสวย สมมติว่าฉันแสดงทรงกลมด้วยพื้นผิวโลกและรายการจุดเล็ก ๆ เพื่อทำตัวเป็นดาวฉันจะแสดงสิ่งนี้ใน HDR ได้อย่างไร นี่คือบางสิ่งที่ฉันสับสนเกี่ยวกับ: ฉันเดาว่าฉันไม่สามารถใช้รูปแบบภาพพื้นฐานใด ๆ กับพื้นผิวได้เนื่องจากค่าจะถูก จำกัด ที่ [0, 255] และถูกจับไปที่ [0, 1] ในรูปแบบ กันไปสำหรับบัฟเฟอร์ด้านหลังฉันคิดว่ารูปแบบต้องเป็นรูปแบบจุดลอยตัวหรือไม่ ขั้นตอนอื่น ๆ ที่เกี่ยวข้องมีอะไรบ้าง แน่นอนว่าจะต้องมีมากกว่าการใช้รูปแบบจุดลอยตัวเพื่อเรนเดอร์ไปยังเป้าหมายเรนเดอร์จากนั้นใช้การเบ่งบานเป็นกระบวนการโพสต์? (พิจารณาผลลัพธ์จะเป็น 8bpp อยู่ดี) โดยพื้นฐานแล้ว HDR มีขั้นตอนอย่างไรบ้าง? มันทำงานยังไง? ฉันไม่สามารถหาบทความ / บทความที่ดีที่อธิบายกระบวนการนอกเหนือไปจากบทความนี้ได้แต่ดูเหมือนว่าจะเรียดเรื่องพื้นฐานเล็กน้อยดังนั้นมันจึงสับสน
17 c++  hlsl  directx11  hdr 

7
วางไข่หน่วยในโลกที่ทำโดยเสียง Perlin?
มีปัญหาบางอย่างที่ฉันเจอในเกมที่ใช้เสียงรบกวนของ Perlin ดูภาพหน้าจอที่แนบมาด้านล่าง พื้นที่สีขาวที่คุณเห็นนั้นเป็นผนังและพื้นที่สีดำสามารถเดินได้ สามเหลี่ยมที่อยู่ตรงกลางคือผู้เล่น ฉันใช้ฟิสิกส์ในเกมนี้โดยวาดลงบนพื้นผิว (พิกเซลสีขาวหรือสีดำ) แล้วนำมันมาจากซีพียู อย่างไรก็ตามตอนนี้ฉันยืนอยู่กับปัญหาที่แตกต่างกันในมือ ฉันต้องการหน่วย (หรือครีปสิ่งที่คุณเรียกพวกเขา) เพื่อวางไข่อย่างต่อเนื่องที่ขอบของหน้าจอ ประเด็นที่นี่คือในเกมสุดท้ายจะมี "หมอกแห่งสงคราม" ที่ไม่อนุญาตให้ผู้เล่นมองเห็นได้ไกล ฉันคิดว่าฉันสามารถสแกนพิกเซลที่ขอบของหน้าจอและดูว่าพื้นผิวฟิสิกส์ของพวกเขาเป็นสีดำหรือไม่จากนั้นจะวางไข่แบบสุ่มที่นั่น อย่างไรก็ตามถ้าคุณลองดูภาพหน้าจอที่สองมี (ที่มุมบนซ้าย) ตัวอย่างที่ฉันไม่ต้องการให้ครีพวางไข่ (เนื่องจากพวกเขาไม่สามารถเข้าถึงผู้เล่นได้จากที่นั่น) . เป็นไปได้ไหมที่ GPU จะกำหนดจุดกำเนิดของสิ่งเหล่านี้ให้ฉันหรือวิธีอื่น? ฉันคิดเกี่ยวกับการทำเวกเตอร์ระหว่างจุดที่เสนอที่ขอบของหน้าจอและผู้เล่นจากนั้นติดตามมันทุกๆ 10 voxels และดูว่ากำแพงชนกันหรือไม่ก่อนที่จะวางไข่ที่หน่วยหนึ่ง อย่างไรก็ตามโซลูชันที่เสนอข้างต้นอาจมี CPU มากเกินไป ข้อเสนอแนะเกี่ยวกับเรื่องนี้? หมายเหตุ 1 สำหรับยูนิตที่วางไข่ฉันไม่ต้องการใช้รูปแบบการค้นหาแบบใดเพื่อหลีกเลี่ยงการชนกันของกำแพงเนื่องจากยูนิตเหล่านี้วิ่งไปทางเครื่องเล่น ดังนั้นหน่วยจะต้องวางไข่ที่ขอบของหน้าจอในสถานที่ที่เดินเป็นเส้นตรงเข้าหาผู้เล่นจะไม่ชนกับกำแพงใด ๆ
16 xna  path-finding  hlsl  gpgpu 

5
หลีกเลี่ยงถ้างบใน DirectX 10 shaders หรือไม่
ฉันเคยได้ยินว่าถ้างบควรหลีกเลี่ยงใน shaders เพราะทั้งสองส่วนของงบจะดำเนินการและกว่าจะผิดพลาดจะลดลง (ซึ่งเป็นอันตรายต่อประสิทธิภาพการทำงาน) ยังคงเป็นปัญหาใน DirectX 10 หรือไม่ มีคนบอกฉันว่ามีเพียงสาขาที่ถูกต้องเท่านั้นที่จะถูกประหาร สำหรับภาพประกอบฉันมีรหัส: float y1 = 5; float y2 = 6; float b1 = 2; float b2 = 3; if(x>0.5){ x = 10 * y1 + b1; }else{ x = 10 * y2 + b2; } มีวิธีอื่นที่จะทำให้เร็วขึ้นหรือไม่? ถ้าเป็นเช่นนั้นได้อย่างไร กิ่งทั้งสองมีลักษณะคล้ายกันความแตกต่างเพียงอย่างเดียวคือค่าของ "ค่าคงที่" ( y1, y2, …

1
ฉันจะสร้างโครงร่าง shader เช่น“ Life is Strange” ได้อย่างไร?
ฉันต้องการทำให้ภาพร่างมีรูปร่างเหมือนชีวิตแปลก ๆ shader มีสองส่วน: 1. เส้นประกำกับ 2. โครงร่างที่มีเสียงดัง ฉันชอบที่จะรู้ว่าฉันจะทำให้ร่างมีเสียงดัง ดูโครงร่างของวัตถุ ก่อนอื่นฉันพยายามทำโครงร่างโดยการคัดลอกข้อมูลจุดยอดที่เข้ามาและปรับขนาดตามทิศทางปกติจากนั้น Cull Back.but แต่ฉันคิดว่ามันคล้ายกับเอฟเฟ็กต์ภาพเพราะบางครั้งร่างเคลื่อนที่ไปด้านในวัตถุ ต่อไปฉันจะขอบคุณถ้ามีคนช่วยฉันในการใช้ Shader นี้ :) สิ่งที่ฉันพยายาม ฉันใช้การตรวจจับขอบและทำให้เคลื่อนไหวได้ด้วยเครื่องปรับจุดสุดยอด แต่สิ่งนี้ไม่ดีเหมือน gifs ด้านบน
13 unity  shaders  hlsl 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.