test content
What is the Arc Client?
Install Arc

Shader error

svimepelsensvimepelsen Member Posts: 28 Arc User
Sometimes when playing I got a shader error message from the game. Sometimes I can't see my ship or effect's like warp plasma - don't know if this is related or not.
I found a file within the star trek folder labeled shader error, the text inside this file is on the bottom of the post. I'm unable to provide screenshot as the error message disapears so quickly.

Dxdiag:

System Information
Time of this report: 2/1/2013, 21:25:48
Machine name: HEADHUNTR
Operating System: Windows 7 Home Premium 64-bit (6.1, Build 7601) Service Pack 1 (7601.win7sp1_gdr.120830-0333)
Language: Norwegian (Bokm?l) (Regional Setting: Norwegian (Bokm?l))
System Manufacturer: System manufacturer
System Model: System Product Name
BIOS: BIOS Date: 05/10/11 10:28:31 Ver: 08.00.15
Processor: Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz (8 CPUs), ~3.5GHz
Memory: 6144MB RAM
Available OS Memory: 6136MB RAM
Page File: 2579MB used, 9689MB available
Windows Dir: C:\Windows
DirectX Version: DirectX 11
DX Setup Parameters: Not found
User DPI Setting: Using System DPI
System DPI Setting: 96 DPI (100 percent)
DWM DPI Scaling: Disabled
DxDiag Version: 6.01.7601.17514 32bit Unicode

DxDiag Notes
Display Tab 1: No problems found.
Sound Tab 1: No problems found.
Sound Tab 2: No problems found.
Sound Tab 3: No problems found.
Input Tab: No problems found.

DirectX Debug Levels
Direct3D: 0/4 (retail)
DirectDraw: 0/4 (retail)
DirectInput: 0/5 (retail)
DirectMusic: 0/5 (retail)
DirectPlay: 0/9 (retail)
DirectSound: 0/5 (retail)
DirectShow: 0/6 (retail)

Display Devices
Card name: NVIDIA GeForce GTX 460
Manufacturer: NVIDIA
Chip type: NVxx
DAC type: Integrated RAMDAC
Device Key: Enum\PCI\VEN_10DE&DEV_0E22&SUBSYS_080110B0&REV_A1
Display Memory: 3789 MB
Dedicated Memory: 978 MB
Shared Memory: 2811 MB
Current Mode: 1920 x 1080 (32 bit) (60Hz)
Monitor Name: Generisk PnP-skjerm
Monitor Model: BenQ GL2450
Monitor Id: BNQ78A5
Native Mode: 1920 x 1080(p) (60.000Hz)
Output Type: DVI
Driver Name: nvd3dumx.dll,nvwgf2umx.dll,nvwgf2umx.dll,nvd3dum,nvwgf2um,nvwgf2um
Driver File Version: 9.18.0013.1090 (English)
Driver Version: 9.18.13.1090
DDI Version: 11
Driver Model: WDDM 1.1
Driver Attributes: Final Retail
Driver Date/Size: 12/29/2012 11:34:47, 18054312 bytes
WHQL Logo'd: n/a
WHQL Date Stamp: n/a
Device Identifier: {D7B71E3E-4D62-11CF-4277-0C281CC2C435}
Vendor ID: 0x10DE
Device ID: 0x0E22
SubSys ID: 0x080110B0
Revision ID: 0x00A1
Driver Strong Name: oem16.inf:NVIDIA_SetA_Devices.NTamd64.6.1:Section022:9.18.13.1090:pci\ven_10de&dev_0e22
Rank Of Driver: 00E02001
Video Accel: ModeMPEG2_A ModeMPEG2_C ModeVC1_C ModeWMV9_C
Deinterlace Caps: {6CB69578-7617-4637-91E5-1C02DB810285}: Format(In/Out)=(YUY2,YUY2) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY DeinterlaceTech_PixelAdaptive
{F9F19DA5-3B09-4B2F-9D89-C64753E3EAAB}: Format(In/Out)=(YUY2,YUY2) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY
{5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(YUY2,YUY2) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY
{335AA36E-7884-43A4-9C91-7F87FAF3E37E}: Format(In/Out)=(YUY2,YUY2) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY DeinterlaceTech_BOBVerticalStretch
{6CB69578-7617-4637-91E5-1C02DB810285}: Format(In/Out)=(UYVY,UYVY) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY DeinterlaceTech_PixelAdaptive
{F9F19DA5-3B09-4B2F-9D89-C64753E3EAAB}: Format(In/Out)=(UYVY,UYVY) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY
{5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(UYVY,UYVY) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY
{335AA36E-7884-43A4-9C91-7F87FAF3E37E}: Format(In/Out)=(UYVY,UYVY) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY DeinterlaceTech_BOBVerticalStretch
{6CB69578-7617-4637-91E5-1C02DB810285}: Format(In/Out)=(YV12,0x32315659) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY DeinterlaceTech_PixelAdaptive
{F9F19DA5-3B09-4B2F-9D89-C64753E3EAAB}: Format(In/Out)=(YV12,0x32315659) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY
{5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(YV12,0x32315659) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY
{335AA36E-7884-43A4-9C91-7F87FAF3E37E}: Format(In/Out)=(YV12,0x32315659) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY DeinterlaceTech_BOBVerticalStretch
{6CB69578-7617-4637-91E5-1C02DB810285}: Format(In/Out)=(NV12,0x3231564e) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY DeinterlaceTech_PixelAdaptive
{F9F19DA5-3B09-4B2F-9D89-C64753E3EAAB}: Format(In/Out)=(NV12,0x3231564e) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY
{5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(NV12,0x3231564e) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY
{335AA36E-7884-43A4-9C91-7F87FAF3E37E}: Format(In/Out)=(NV12,0x3231564e) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY DeinterlaceTech_BOBVerticalStretch
{6CB69578-7617-4637-91E5-1C02DB810285}: Format(In/Out)=(IMC1,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps=
{F9F19DA5-3B09-4B2F-9D89-C64753E3EAAB}: Format(In/Out)=(IMC1,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps=
{5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(IMC1,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps=
{335AA36E-7884-43A4-9C91-7F87FAF3E37E}: Format(In/Out)=(IMC1,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps=
{6CB69578-7617-4637-91E5-1C02DB810285}: Format(In/Out)=(IMC2,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps=
{F9F19DA5-3B09-4B2F-9D89-C64753E3EAAB}: Format(In/Out)=(IMC2,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps=
{5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(IMC2,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps=
{335AA36E-7884-43A4-9C91-7F87FAF3E37E}: Format(In/Out)=(IMC2,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps=
{6CB69578-7617-4637-91E5-1C02DB810285}: Format(In/Out)=(IMC3,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps=
{F9F19DA5-3B09-4B2F-9D89-C64753E3EAAB}: Format(In/Out)=(IMC3,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps=
{5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(IMC3,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps=
{335AA36E-7884-43A4-9C91-7F87FAF3E37E}: Format(In/Out)=(IMC3,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps=
{6CB69578-7617-4637-91E5-1C02DB810285}: Format(In/Out)=(IMC4,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps=
{F9F19DA5-3B09-4B2F-9D89-C64753E3EAAB}: Format(In/Out)=(IMC4,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps=
{5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(IMC4,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps=
{335AA36E-7884-43A4-9C91-7F87FAF3E37E}: Format(In/Out)=(IMC4,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps=
{6CB69578-7617-4637-91E5-1C02DB810285}: Format(In/Out)=(S340,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps=
{F9F19DA5-3B09-4B2F-9D89-C64753E3EAAB}: Format(In/Out)=(S340,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps=
{5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(S340,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps=
{335AA36E-7884-43A4-9C91-7F87FAF3E37E}: Format(In/Out)=(S340,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps=
{6CB69578-7617-4637-91E5-1C02DB810285}: Format(In/Out)=(S342,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps=
{F9F19DA5-3B09-4B2F-9D89-C64753E3EAAB}: Format(In/Out)=(S342,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps=
{5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(S342,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps=
{335AA36E-7884-43A4-9C91-7F87FAF3E37E}: Format(In/Out)=(S342,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps=
D3D9 Overlay: Supported
DXVA-HD: Supported
DDraw Status: Enabled
D3D Status: Enabled
AGP Status: Enabled

Sound Devices
Description: H?yttalere (Realtek High Definition Audio)
Default Sound Playback: Yes
Default Voice Playback: Yes
Hardware ID: HDAUDIO\FUNC_01&VEN_10EC&DEV_0889&SUBSYS_104383C0&REV_1000
Manufacturer ID: 1
Product ID: 100
Type: WDM
Driver Name: RTKVHD64.sys
Driver Version: 6.00.0001.5973 (English)
Driver Attributes: Final Retail
WHQL Logo'd: n/a
Date and Size: 10/20/2012 01:41:47, 2023840 bytes
Other Files:
Driver Provider: Realtek Semiconductor Corp.
HW Accel Level: Basic
Cap Flags: 0x0
Min/Max Sample Rate: 0, 0
Static/Strm HW Mix Bufs: 0, 0
Static/Strm HW 3D Bufs: 0, 0
HW Memory: 0
Voice Management: No
EAX(tm) 2.0 Listen/Src: No, No
I3DL2(tm) Listen/Src: No, No
Sensaura(tm) ZoomFX(tm): No

Description: Realtek Digital Output (Realtek High Definition Audio)
Default Sound Playback: No
Default Voice Playback: No
Hardware ID: HDAUDIO\FUNC_01&VEN_10EC&DEV_0889&SUBSYS_104383C0&REV_1000
Manufacturer ID: 1
Product ID: 100
Type: WDM
Driver Name: RTKVHD64.sys
Driver Version: 6.00.0001.5973 (English)
Driver Attributes: Final Retail
WHQL Logo'd: n/a
Date and Size: 10/20/2012 01:41:47, 2023840 bytes
Other Files:
Driver Provider: Realtek Semiconductor Corp.
HW Accel Level: Basic
Cap Flags: 0x0
Min/Max Sample Rate: 0, 0
Static/Strm HW Mix Bufs: 0, 0
Static/Strm HW 3D Bufs: 0, 0
HW Memory: 0
Voice Management: No
EAX(tm) 2.0 Listen/Src: No, No
I3DL2(tm) Listen/Src: No, No
Sensaura(tm) ZoomFX(tm): No

Description: Realtek Digital Output(Optical) (Realtek High Definition Audio)
Default Sound Playback: No
Default Voice Playback: No
Hardware ID: HDAUDIO\FUNC_01&VEN_10EC&DEV_0889&SUBSYS_104383C0&REV_1000
Manufacturer ID: 1
Product ID: 100
Type: WDM
Driver Name: RTKVHD64.sys
Driver Version: 6.00.0001.5973 (English)
Driver Attributes: Final Retail
WHQL Logo'd: n/a
Date and Size: 10/20/2012 01:41:47, 2023840 bytes
Other Files:
Driver Provider: Realtek Semiconductor Corp.
HW Accel Level: Basic
Cap Flags: 0x0
Min/Max Sample Rate: 0, 0
Static/Strm HW Mix Bufs: 0, 0
Static/Strm HW 3D Bufs: 0, 0
HW Memory: 0
Voice Management: No
EAX(tm) 2.0 Listen/Src: No, No
I3DL2(tm) Listen/Src: No, No
Sensaura(tm) ZoomFX(tm): No

Sound Capture Devices
Description: Mikrofon (Realtek High Definition Audio)
Default Sound Capture: Yes
Default Voice Capture: Yes
Driver Name: RTKVHD64.sys
Driver Version: 6.00.0001.5973 (English)
Driver Attributes: Final Retail
Date and Size: 10/20/2012 01:41:47, 2023840 bytes
Cap Flags: 0x0
Format Flags: 0x0

DirectInput Devices
Device Name: Mus
Attached: 1
Controller ID: n/a
Vendor/Product ID: n/a
FF Driver: n/a

Device Name: Tastatur
Attached: 1
Controller ID: n/a
Vendor/Product ID: n/a
FF Driver: n/a

Device Name: G15 Gaming Keyboard
Attached: 1
Controller ID: 0x0
Vendor/Product ID: 0x046D, 0xC226
FF Driver: n/a

Device Name: G15 Gaming Keyboard
Attached: 1
Controller ID: 0x0
Vendor/Product ID: 0x046D, 0xC226
FF Driver: n/a

Device Name: G15 GamePanel LCD
Attached: 1
Controller ID: 0x0
Vendor/Product ID: 0x046D, 0xC227
FF Driver: n/a

Device Name: Razer Imperator
Attached: 1
Controller ID: 0x0
Vendor/Product ID: 0x1532, 0x002F
FF Driver: n/a

Device Name: Razer Imperator
Attached: 1
Controller ID: 0x0
Vendor/Product ID: 0x1532, 0x002F
FF Driver: n/a

Poll w/ Interrupt: No

USB Devices
+ USB Root Hub
| Vendor/Product ID: 0x8086, 0x3A36
| Matching Device ID: usb\root_hub
| Service: usbhub

Gameport Devices

PS/2 Devices
+ HID Keyboard Device
| Vendor/Product ID: 0x046D, 0xC226
| Matching Device ID: hid_device_system_keyboard
| Service: kbdhid
|
+ HID Keyboard Device
| Vendor/Product ID: 0x046D, 0xC227
| Matching Device ID: hid_device_system_keyboard
| Service: kbdhid
|
+ HID Keyboard Device
| Vendor/Product ID: 0x1532, 0x002F
| Matching Device ID: hid_device_system_keyboard
| Service: kbdhid
|
+ Terminal Server Keyboard Driver
| Matching Device ID: root\rdp_kbd
| Upper Filters: kbdclass
| Service: TermDD
|
+ HID-kompatibel mus
| Vendor/Product ID: 0x1532, 0x002F
| Matching Device ID: hid_device_system_mouse
| Service: mouhid
|
+ Terminal Server Mouse Driver
| Matching Device ID: root\rdp_mou
| Upper Filters: mouclass
| Service: TermDD

Disk & DVD/CD-ROM Drives
Drive: C:
Free Space: 15.1 GB
Total Space: 57.5 GB
File System: NTFS
Model: Corsair CSSD-R60GB2 ATA Device

Drive: X:
Free Space: 21.4 GB
Total Space: 305.2 GB
File System: NTFS
Model: SAMSUNG HD322HJ ATA Device

Drive: Y:
Free Space: 536.1 GB
Total Space: 715.4 GB
File System: NTFS
Model: SAMSUNG HD753LJ ATA Device

Drive: D:
Model: Optiarc DVD RW AD-5260S ATA Device
Driver: c:\windows\system32\drivers\cdrom.sys, 6.01.7601.17514 (Norwegian (Bokm?l)), , 0 bytes

System Devices
Name: High Definition Audio-kontroller
Device ID: PCI\VEN_8086&DEV_3A3E&SUBSYS_84181043&REV_00\3&11583659&0&D8
Driver: n/a

Name: Intel(R) ICH10 Family USB Universal Host Controller - 3A34
Device ID: PCI\VEN_8086&DEV_3A34&SUBSYS_82D41043&REV_00\3&11583659&0&E8
Driver: n/a

Name: Intel(R) 5520/5500/X58 I/O Hub GPIO and Scratch Pad Registers - 3422
Device ID: PCI\VEN_8086&DEV_3422&SUBSYS_00000000&REV_13\3&11583659&0&A1
Driver: n/a

Name: Marvell Yukon 88E8056 PCI-E Gigabit Ethernet Controller #2
Device ID: PCI\VEN_11AB&DEV_4364&SUBSYS_81F81043&REV_12\4&44D0CAE&0&00E5
Driver: n/a

Name: Intel(R) ICH10 Family USB Enhanced Host Controller - 3A3C
Device ID: PCI\VEN_8086&DEV_3A3C&SUBSYS_82D41043&REV_00\3&11583659&0&D7
Driver: n/a

Name: Intel(R) 82801JDH SMBus Controller - 3A30 (Intel(R) SMBus 2.0 Driver)
Device ID: PCI\VEN_8086&DEV_3A30&SUBSYS_82D41043&REV_00\3&11583659&0&FB
Driver: n/a

Name: Intel(R) 5520/5500/X58 I/O Hub PCI Express Root Port 7 - 340E
Device ID: PCI\VEN_8086&DEV_340E&SUBSYS_836B1043&REV_13\3&11583659&0&38
Driver: n/a

Name: Marvell Yukon 88E8056 PCI-E Gigabit Ethernet Controller
Device ID: PCI\VEN_11AB&DEV_4364&SUBSYS_81F81043&REV_12\4&18ABAD59&0&00E2
Driver: n/a

Name: Intel(R) ICH10 Family USB Enhanced Host Controller - 3A3A
Device ID: PCI\VEN_8086&DEV_3A3A&SUBSYS_82D41043&REV_00\3&11583659&0&EF
Driver: n/a

Name: Intel(R) ICH10 Family 2 port Serial ATA Storage Controller 2 - 3A26
Device ID: PCI\VEN_8086&DEV_3A26&SUBSYS_82D41043&REV_00\3&11583659&0&FD
Driver: n/a

Name: Intel(R) 5520/5500/X58 I/O Hub PCI Express Root Port 3 - 340A
Device ID: PCI\VEN_8086&DEV_340A&SUBSYS_836B1043&REV_13\3&11583659&0&18
Driver: n/a

Name: VIA 1394 OHCI Compliant Host Controller
Device ID: PCI\VEN_1106&DEV_3044&SUBSYS_81FE1043&REV_C0\4&1B359D48&0&10F0
Driver: n/a

Name: Intel(R) ICH10 Family USB Universal Host Controller - 3A39
Device ID: PCI\VEN_8086&DEV_3A39&SUBSYS_82D41043&REV_00\3&11583659&0&D2
Driver: n/a

Name: Intel(R) ICH10 Family 4 port Serial ATA Storage Controller 1 - 3A20
Device ID: PCI\VEN_8086&DEV_3A20&SUBSYS_82D41043&REV_00\3&11583659&0&FA
Driver: n/a

Name: Intel(R) 5520/5500/X58 I/O Hub PCI Express Root Port 2 - 3409
Device ID: PCI\VEN_8086&DEV_3409&SUBSYS_836B1043&REV_13\3&11583659&0&10
Driver: n/a

Name: NVIDIA GeForce GTX 460
Device ID: PCI\VEN_10DE&DEV_0E22&SUBSYS_080110B0&REV_A1\4&9BA4AB8&0&0038
Driver: n/a

Name: Intel(R) ICH10 Family USB Universal Host Controller - 3A38
Device ID: PCI\VEN_8086&DEV_3A38&SUBSYS_82D41043&REV_00\3&11583659&0&D1
Driver: n/a

Name: Intel(R) ICH10R LPC Interface Controller - 3A16
Device ID: PCI\VEN_8086&DEV_3A16&SUBSYS_82D41043&REV_00\3&11583659&0&F8
Driver: n/a

Name: Intel(R) 5520/5500/X58 I/O Hub PCI Express Root Port 1 - 3408
Device ID: PCI\VEN_8086&DEV_3408&SUBSYS_836B1043&REV_13\3&11583659&0&08
Driver: n/a

Name: NVIDIA GeForce GTX 460
Device ID: PCI\VEN_10DE&DEV_0E22&SUBSYS_080110B0&REV_A1\4&2F1C4782&0&0018
Driver: n/a

Name: Intel(R) ICH10 Family PCI Express Root Port 6 - 3A4A
Device ID: PCI\VEN_8086&DEV_3A4A&SUBSYS_84181043&REV_00\3&11583659&0&E5
Driver: n/a

Name: Intel(R) ICH10 Family USB Universal Host Controller - 3A37
Device ID: PCI\VEN_8086&DEV_3A37&SUBSYS_82D41043&REV_00\3&11583659&0&D0
Driver: n/a

Name: Intel(R) 5520/5500/X58 I/O Hub Throttle Registers - 3438
Device ID: PCI\VEN_8086&DEV_3438&SUBSYS_00000000&REV_13\3&11583659&0&A3
Driver: n/a

Name: Intel(R) 5520/5500/X58 I/O Hub to ESI Port - 3405
Device ID: PCI\VEN_8086&DEV_3405&SUBSYS_836B1043&REV_13\3&11583659&0&00
Driver: n/a

Name: High Definition Audio-kontroller
Device ID: PCI\VEN_10DE&DEV_0BEB&SUBSYS_080110B0&REV_A1\4&9BA4AB8&0&0138
Driver: n/a

Name: Intel(R) ICH10 Family PCI Express Root Port 3 - 3A44
Device ID: PCI\VEN_8086&DEV_3A44&SUBSYS_84181043&REV_00\3&11583659&0&E2
Driver: n/a

Name: Intel(R) ICH10 Family USB Universal Host Controller - 3A36
Device ID: PCI\VEN_8086&DEV_3A36&SUBSYS_82D41043&REV_00\3&11583659&0&EA
Driver: n/a

Name: Intel(R) 5520/5500/X58 I/O Hub System Management Registers - 342E
Device ID: PCI\VEN_8086&DEV_342E&SUBSYS_00000000&REV_13\3&11583659&0&A0
Driver: n/a

Name: Intel(R) 82801 PCI Bridge - 244E
Device ID: PCI\VEN_8086&DEV_244E&SUBSYS_82D41043&REV_90\3&11583659&0&F0
Driver: n/a

Name: High Definition Audio-kontroller
Device ID: PCI\VEN_10DE&DEV_0BEB&SUBSYS_080110B0&REV_A1\4&2F1C4782&0&0118
Driver: n/a

Name: Intel(R) ICH10 Family PCI Express Root Port 1 - 3A40
Device ID: PCI\VEN_8086&DEV_3A40&SUBSYS_84181043&REV_00\3&11583659&0&E0
Driver: n/a

Name: Intel(R) ICH10 Family USB Universal Host Controller - 3A35
Device ID: PCI\VEN_8086&DEV_3A35&SUBSYS_82D41043&REV_00\3&11583659&0&E9
Driver: n/a

Name: Intel(R) 5520/5500/X58 I/O Hub Control Status and RAS Registers - 3423
Device ID: PCI\VEN_8086&DEV_3423&SUBSYS_00000000&REV_13\3&11583659&0&A2
Driver: n/a

Name: Marvell 91xx SATA 6G Controller
Device ID: PCI\VEN_1B4B&DEV_914D&SUBSYS_84001043&REV_10\4&37C265C7&0&0008
Driver: n/a

Name: Renesas Electronics USB 3.0 Host Controller
Device ID: PCI\VEN_1033&DEV_0194&SUBSYS_84131043&REV_03\4&CF85AA7&0&0010
Driver: n/a

DirectShow Filters

DirectShow Filters:
WMAudio Decoder DMO,0x00800800,1,1,WMADMOD.DLL,6.01.7601.17514
WMAPro over S/PDIF DMO,0x00600800,1,1,WMADMOD.DLL,6.01.7601.17514
WMSpeech Decoder DMO,0x00600800,1,1,WMSPDMOD.DLL,6.01.7601.17514
MP3 Decoder DMO,0x00600800,1,1,mp3dmod.dll,6.01.7600.16385
Mpeg4s Decoder DMO,0x00800001,1,1,mp4sdecd.dll,6.01.7600.16385
WMV Screen decoder DMO,0x00600800,1,1,wmvsdecd.dll,6.01.7601.17514
WMVideo Decoder DMO,0x00800001,1,1,wmvdecod.dll,6.01.7601.17514
Mpeg43 Decoder DMO,0x00800001,1,1,mp43decd.dll,6.01.7600.16385
Mpeg4 Decoder DMO,0x00800001,1,1,mpg4decd.dll,6.01.7600.16385
DV Muxer,0x00400000,0,0,qdv.dll,6.06.7601.17514
Color Space Converter,0x00400001,1,1,quartz.dll,6.06.7601.17713
WM ASF Reader,0x00400000,0,0,qasf.dll,12.00.7601.17514
Screen Capture filter,0x00200000,0,1,wmpsrcwp.dll,12.00.7601.17514
AVI Splitter,0x00600000,1,1,quartz.dll,6.06.7601.17713
VGA 16 Color Ditherer,0x00400000,1,1,quartz.dll,6.06.7601.17713
SBE2MediaTypeProfile,0x00200000,0,0,sbe.dll,6.06.7601.17528
Microsoft DTV-DVD Video Decoder,0x005fffff,2,4,msmpeg2vdec.dll,6.01.7140.0000
AC3 Parser Filter,0x00600000,1,1,mpg2splt.ax,6.06.7601.17528
StreamBufferSink,0x00200000,0,0,sbe.dll,6.06.7601.17528
MJPEG Decompressor,0x00600000,1,1,quartz.dll,6.06.7601.17713
MPEG-I Stream Splitter,0x00600000,1,2,quartz.dll,6.06.7601.17713
SAMI (CC) Parser,0x00400000,1,1,quartz.dll,6.06.7601.17713
VBI Codec,0x00600000,1,4,VBICodec.ax,6.06.7601.17514
MPEG-2 Splitter,0x005fffff,1,0,mpg2splt.ax,6.06.7601.17528
Closed Captions Analysis Filter,0x00200000,2,5,cca.dll,6.06.7601.17514
SBE2FileScan,0x00200000,0,0,sbe.dll,6.06.7601.17528
Microsoft MPEG-2 Video Encoder,0x00200000,1,1,msmpeg2enc.dll,6.01.7601.17514
Internal Script Command Renderer,0x00800001,1,0,quartz.dll,6.06.7601.17713
MPEG Audio Decoder,0x03680001,1,1,quartz.dll,6.06.7601.17713
DV Splitter,0x00600000,1,2,qdv.dll,6.06.7601.17514
Video Mixing Renderer 9,0x00200000,1,0,quartz.dll,6.06.7601.17713
Microsoft MPEG-2 Encoder,0x00200000,2,1,msmpeg2enc.dll,6.01.7601.17514
ACM Wrapper,0x00600000,1,1,quartz.dll,6.06.7601.17713
Video Renderer,0x00800001,1,0,quartz.dll,6.06.7601.17713
MPEG-2 Video Stream Analyzer,0x00200000,0,0,sbe.dll,6.06.7601.17528
Line 21 Decoder,0x00600000,1,1,qdvd.dll,6.06.7601.17835
Video Port Manager,0x00600000,2,1,quartz.dll,6.06.7601.17713
Video Renderer,0x00400000,1,0,quartz.dll,6.06.7601.17713
VPS Decoder,0x00200000,0,0,WSTPager.ax,6.06.7601.17514
WM ASF Writer,0x00400000,0,0,qasf.dll,12.00.7601.17514
VBI Surface Allocator,0x00600000,1,1,vbisurf.ax,6.01.7601.17514
File writer,0x00200000,1,0,qcap.dll,6.06.7601.17514
iTV Data Sink,0x00600000,1,0,itvdata.dll,6.06.7601.17514
iTV Data Capture filter,0x00600000,1,1,itvdata.dll,6.06.7601.17514
DVD Navigator,0x00200000,0,3,qdvd.dll,6.06.7601.17835
Overlay Mixer2,0x00200000,1,1,qdvd.dll,6.06.7601.17835
AVI Draw,0x00600064,9,1,quartz.dll,6.06.7601.17713
RDP DShow Redirection Filter,0xffffffff,1,0,DShowRdpFilter.dll,
Microsoft MPEG-2 Audio Encoder,0x00200000,1,1,msmpeg2enc.dll,6.01.7601.17514
WST Pager,0x00200000,1,1,WSTPager.ax,6.06.7601.17514
MPEG-2 Demultiplexer,0x00600000,1,1,mpg2splt.ax,6.06.7601.17528
DV Video Decoder,0x00800000,1,1,qdv.dll,6.06.7601.17514
SampleGrabber,0x00200000,1,1,qedit.dll,6.06.7601.17514
Null Renderer,0x00200000,1,0,qedit.dll,6.06.7601.17514
MPEG-2 Sections and Tables,0x005fffff,1,0,Mpeg2Data.ax,6.06.7601.17514
Microsoft AC3 Encoder,0x00200000,1,1,msac3enc.dll,6.01.7601.17514
StreamBufferSource,0x00200000,0,0,sbe.dll,6.06.7601.17528
Smart Tee,0x00200000,1,2,qcap.dll,6.06.7601.17514
Overlay Mixer,0x00200000,0,0,qdvd.dll,6.06.7601.17835
AVI Decompressor,0x00600000,1,1,quartz.dll,6.06.7601.17713
AVI/WAV File Source,0x00400000,0,2,quartz.dll,6.06.7601.17713
Wave Parser,0x00400000,1,1,quartz.dll,6.06.7601.17713
MIDI Parser,0x00400000,1,1,quartz.dll,6.06.7601.17713
Multi-file Parser,0x00400000,1,1,quartz.dll,6.06.7601.17713
File stream renderer,0x00400000,1,1,quartz.dll,6.06.7601.17713
Microsoft DTV-DVD Audio Decoder,0x005fffff,1,1,msmpeg2adec.dll,6.01.7140.0000
StreamBufferSink2,0x00200000,0,0,sbe.dll,6.06.7601.17528
AVI Mux,0x00200000,1,0,qcap.dll,6.06.7601.17514
Line 21 Decoder 2,0x00600002,1,1,quartz.dll,6.06.7601.17713
File Source (Async.),0x00400000,0,1,quartz.dll,6.06.7601.17713
File Source (URL),0x00400000,0,1,quartz.dll,6.06.7601.17713
Infinite Pin Tee Filter,0x00200000,1,1,qcap.dll,6.06.7601.17514
Enhanced Video Renderer,0x00200000,1,0,evr.dll,6.01.7601.17514
BDA MPEG2 Transport Information Filter,0x00200000,2,0,psisrndr.ax,6.06.7601.17669
MPEG Video Decoder,0x40000001,1,1,quartz.dll,6.06.7601.17713

WDM Streaming Tee/Splitter Devices:
Tee/Sink-to-Sink-konverterer,0x00200000,1,1,ksproxy.ax,6.01.7601.17514

Video Compressors:
WMVideo8 Encoder DMO,0x00600800,1,1,wmvxencd.dll,6.01.7600.16385
WMVideo9 Encoder DMO,0x00600800,1,1,wmvencod.dll,6.01.7600.16385
MSScreen 9 encoder DMO,0x00600800,1,1,wmvsencd.dll,6.01.7600.16385
DV Video Encoder,0x00200000,0,0,qdv.dll,6.06.7601.17514
MJPEG Compressor,0x00200000,0,0,quartz.dll,6.06.7601.17713
Cinepak-kodek fra Radius,0x00200000,1,1,qcap.dll,6.06.7601.17514
Intel IYUV codec,0x00200000,1,1,qcap.dll,6.06.7601.17514
Intel IYUV codec,0x00200000,1,1,qcap.dll,6.06.7601.17514
Microsoft RLE,0x00200000,1,1,qcap.dll,6.06.7601.17514
Microsoft Video 1,0x00200000,1,1,qcap.dll,6.06.7601.17514

Audio Compressors:
WM Speech Encoder DMO,0x00600800,1,1,WMSPDMOE.DLL,6.01.7600.16385
WMAudio Encoder DMO,0x00600800,1,1,WMADMOE.DLL,6.01.7600.16385
IMA ADPCM,0x00200000,1,1,quartz.dll,6.06.7601.17713
PCM,0x00200000,1,1,quartz.dll,6.06.7601.17713
Microsoft ADPCM,0x00200000,1,1,quartz.dll,6.06.7601.17713
GSM 6.10,0x00200000,1,1,quartz.dll,6.06.7601.17713
CCITT A-Law,0x00200000,1,1,quartz.dll,6.06.7601.17713
CCITT u-Law,0x00200000,1,1,quartz.dll,6.06.7601.17713
MPEG Layer-3,0x00200000,1,1,quartz.dll,6.06.7601.17713

Audio Capture Sources:
Mikrofon (Realtek High Definiti,0x00200000,0,0,qcap.dll,6.06.7601.17514

PBDA CP Filters:
PBDA DTFilter,0x00600000,1,1,CPFilters.dll,6.06.7601.17528
PBDA ETFilter,0x00200000,0,0,CPFilters.dll,6.06.7601.17528
PBDA PTFilter,0x00200000,0,0,CPFilters.dll,6.06.7601.17528

Midi Renderers:
Default MidiOut Device,0x00800000,1,0,quartz.dll,6.06.7601.17713
Microsoft GS Wavetable Synth,0x00200000,1,0,quartz.dll,6.06.7601.17713

WDM Streaming Capture Devices:
Realtek HD Audio CD input,0x00200000,1,1,ksproxy.ax,6.01.7601.17514
Realtek HD Audio Line input,0x00200000,1,1,ksproxy.ax,6.01.7601.17514
Realtek HD Audio Mic input,0x00200000,1,1,ksproxy.ax,6.01.7601.17514
Realtek HD Audio Stereo input,0x00200000,1,1,ksproxy.ax,6.01.7601.17514

WDM Streaming Rendering Devices:
Realtek HD Audio output,0x00200000,1,1,ksproxy.ax,6.01.7601.17514
Realtek HDA SPDIF Optical Out,0x00200000,1,1,ksproxy.ax,6.01.7601.17514
Realtek HDA SPDIF Out,0x00200000,1,1,ksproxy.ax,6.01.7601.17514

BDA Network Providers:
Microsoft ATSC Network Provider,0x00200000,0,1,MSDvbNP.ax,6.06.7601.17514
Microsoft DVBC Network Provider,0x00200000,0,1,MSDvbNP.ax,6.06.7601.17514
Microsoft DVBS Network Provider,0x00200000,0,1,MSDvbNP.ax,6.06.7601.17514
Microsoft DVBT Network Provider,0x00200000,0,1,MSDvbNP.ax,6.06.7601.17514
Microsoft Network Provider,0x00200000,0,1,MSNP.ax,6.06.7601.17514

Multi-Instance Capable VBI Codecs:
VBI Codec,0x00600000,1,4,VBICodec.ax,6.06.7601.17514

BDA Transport Information Renderers:
BDA MPEG2 Transport Information Filter,0x00600000,2,0,psisrndr.ax,6.06.7601.17669
MPEG-2 Sections and Tables,0x00600000,1,0,Mpeg2Data.ax,6.06.7601.17514

BDA CP/CA Filters:
Decrypt/Tag,0x00600000,1,1,EncDec.dll,6.06.7601.17708
Encrypt/Tag,0x00200000,0,0,EncDec.dll,6.06.7601.17708
PTFilter,0x00200000,0,0,EncDec.dll,6.06.7601.17708
XDS Codec,0x00200000,0,0,EncDec.dll,6.06.7601.17708

WDM Streaming Communication Transforms:
Tee/Sink-to-Sink-konverterer,0x00200000,1,1,ksproxy.ax,6.01.7601.17514

Audio Renderers:
H?yttalere (Realtek High Defini,0x00200000,1,0,quartz.dll,6.06.7601.17713
Default DirectSound Device,0x00800000,1,0,quartz.dll,6.06.7601.17713
Default WaveOut Device,0x00200000,1,0,quartz.dll,6.06.7601.17713
DirectSound: H?yttalere (Realtek High Definition Audio),0x00200000,1,0,quartz.dll,6.06.7601.17713
DirectSound: Realtek Digital Output (Realtek High Definition Audio),0x00200000,1,0,quartz.dll,6.06.7601.17713
DirectSound: Realtek Digital Output(Optical) (Realtek High Definition Audio),0x00200000,1,0,quartz.dll,6.06.7601.17713
Realtek Digital Output (Realtek,0x00200000,1,0,quartz.dll,6.06.7601.17713
Realtek Digital Output(Optical),0x00200000,1,0,quartz.dll,6.06.7601.17713

EVR Power Information
Current Setting: {5C67A112-A4C9-483F-B4A7-1D473BECAFDC} (Quality)
Quality Flags: 2576
Enabled:
Force throttling
Allow half deinterlace
Allow scaling
Decode Power Usage: 100
Balanced Flags: 1424
Enabled:
Force throttling
Allow batching
Force half deinterlace
Force scaling
Decode Power Usage: 50
PowerFlags: 1424
Enabled:
Force throttling
Allow batching
Force half deinterlace
Force scaling
Decode Power Usage: 0



Shader error

// Defines: SSAO SSAO_PREPASS SM30 VFETCH DEPTH_TEXTURE D3D11 USE_OLD_REFLECTION NO_AMBIENT_FALLOFF NVIDIA NOGRAD SSAO_PREPASS_ENABLED
//#define DEFERRED_SHADOW
// Force SM2.0 flag. This allows GraphicsLib to override the shader
// model actually being compiled for, for measuring lower end shaders.
//fdef FORCE_SM20
//ndef SM2B
//ndef SM30
//efine SM20
//ndif
//fdef SM20
//fdef SM2B
//ror in defines, can't be SM2B and SM20'
//lifdef SM30
//ror in defines, can't be SM30 and SM20'
//ndif
// Just SM20, no 2A or 2B or 30
//efine NO_SPECULAR
//efine NO_SHADOW
//efine NO_NORMALMAP
//efine VERTEX_FOG
//ndef HAS_DIFFUSE_WARP
//ndef HALFTONE
//ndif
//fndef SM30
// Adds a couple extra instructions to lighting we can't afford
//ndef TINT_SHADOW
// texlod not supported
//ndef AllowRefMIPBias
// Actually need "SM30_PLUS" for CCLIGHTING (5 lights support), so a small set of cards may be getting a few extra instructions
//efine NO_CCLIGHTING
//ndif
//ragma warning(disable:3206) // implicit truncation of vector type (e.g. float3 a = (float4)b;)
//ragma warning(disable:3571) // pow(f, e) will not work for negative f, use abs(f) or conditionally handle negative values if you expect them
//
Begin Constants
//
// typedef struct
// {
// float4 color_low; // [color.rgb, max fog]
// float4 color_high; // [color.rgb, max fog]
// float4 dist; // [far, 1 / (far-near), density, abmientscatter] or [near1, 1 / (far1-near1), near2, 1 / (far2-near2)]
// } FogParams;
// managed block
uniform float4 inv_screen_params : register(c0); // to get screen texture coords: inv_screen_params.xy * position_screen.xy + inv_screen_params.zw
uniform float4 proj_mat_Z : register(c1);
uniform float4 proj_mat_W : register(c2);
uniform float4 depth_range : register(c3); // [farz, 1/farz, near_size.x/nearz, near_size.y/nearz]
// end managed block
uniform float4 sky_dome_color_front : register(c4);
uniform float4 sky_dome_color_back : register(c5);
uniform float4 sky_dome_color_side : register(c6); //.w is the SSAO direct light attenuation amount
// uniform FogParams fog : register(c7); // c7-c9
uniform float4 fog_color_low : register(c7);
uniform float4 fog_color_high : register(c8);
uniform float4 fog_dist : register(c9);
uniform float4 exposure_transform : register(c10);
//fdef SM30
uniform float4 ambient_light : register(c124);
//fdef _PS3
//iform float3x4 invview_mat : register(c125); // c125-c127
//lse
uniform column_major float4x3 invview_mat : register(c125); // c125-c127
//ndif
// this is effectively a transpose mult. You probably want comul. TODO - rename these? [RMARR - 8/20/12]
float4 mul_invview_mat(in float4 v) {
//fdef _PS3
// return mul(v, invview_mat);
//lse
return mul(invview_mat, v.xyz);
//ndif
}
float3 comul_invview_mat(in float3 v) {
//fdef _PS3
// return mul(invview_mat, float4(v,0)).xyz;
//lse
return mul(float4(v,0), invview_mat).xyz;
//ndif
}
float3 comul_invview_mat(in float4 v) {
//fdef _PS3
// return mul(invview_mat, v).xyz;
//lse
return mul(v, invview_mat).xyz;
//ndif
}
//lseifdef ReflectionCubemap
//ror: Cubemap reflections require shader model 3.0 or higher!
//ndif
// DO NOT USE REGISTERS 11 AND UP! THEY ARE RESERVED FOR MATERIAL INPUTS!
//
End Constants
//
//fdef D3D11
//lse
//acro SAMPLER_PARAM1_TYPE
//mpler2D
//ndmacro
//ndif
//fdef D3D11
//lse
//acro SEM_COLOR(num)
//LOR##num
//ndmacro
//ndif
//fdef D3D11
//lse
//acro SEMCOLOR
//LOR
//ndmacro
//ndif
//fdef D3D11
//lse
//acro SAMPLER_PARAM1_TYPE_3D
//mpler3D
//ndmacro
//ndif
//fdef D3D11
//lse
//acro SAMPLER_PARAM1_TYPE_CUBE
//mplerCUBE
//ndmacro
//ndif
//fdef D3D11
//lse
//acro SAMPLER_PARAM2_TYPE
//oat
//ndmacro
//ndif
//fdef D3D11
//lse
//acro SAMPLER_PARAM2_COMPARISON_TYPE
//oat
//ndmacro
//ndif
//fdef D3D11
//lse
//acro SAMPLER_DECL(name, num)
//mpler2D name : register(s##num);
//atic const float sam##name = 0
//ndmacro
//ndif
//fdef D3D11
//lse
//acro SAMPLER_DECL_CUBE(name, num)
//mplerCUBE name : register(s##num);
//atic const float sam##name = 0
//ndmacro
//ndif
float4 sampleTex2DLodInternal(in Texture2D t,
in SamplerState samp,
float2 uvs,
float miplevel)
{
//ifdef D3D11
return t.SampleLevel(samp, uvs, miplevel);
//elseifdef SM30
//return tex2Dlod(t, float4(uvs, 0, miplevel));
//else
//return tex2D(t, uvs);
//endif
}
float3 toTangentSpace(in float3 tangent, in float3 binormal, in float3 normal, in float3 invec)
{
float3 outvec;
outvec.x = dot(tangent, invec);
outvec.y = dot(binormal, invec);
outvec.z = dot(normal, invec);
return outvec;
}

float3 fromTangentSpace(in float3 tangent, in float3 binormal, in float3 normal, in float3 invec)
{
return (invec.x * tangent) + (invec.y * binormal) + (invec.z * normal);
}
//
float getLuminance(float3 color)
{
return dot(color, float3(0.299f, 0.587f, 0.114f));
}
float getIntensity(in float3 color)
{
return max(max(color.r, color.g), color.b);
}
float getIntensityQuick(in float3 color)
{
return 0.8*dot(color, float3(0.5, 0.6, 0.5));
}
//
float interp(in float minval, in float maxval, in float val)
{
float bottom = maxval - minval;
return (bottom < 0) ? (1 - saturate((val - maxval) / (-bottom))) : saturate((val - minval) / bottom);
}
float interp_safe(in float minval, in float maxval, in float val)
{
return saturate((val - minval) / (maxval - minval));
}
float3 rangeCompress(in float3 v)
{
return v * 0.5 + 0.5;
}
float rangeCompress1(in float v)
{
return v * 0.5 + 0.5;
}
float3 rangeExpand(in float3 v)
{
return v * 2.0 - 1.0;
}
float rangeExpand1(in float v)
{
return v * 2.0 - 1.0;
}
float2 rangeExpand2(in float2 v)
{
return v * 2.0 - 1.0;
}
float3 dxt5nmExpand(in float4 v)
{
float3 dxt5nm;
dxt5nm.xy = rangeExpand2(v.wy);
dxt5nm.z = sqrt(saturate(1 - dot(dxt5nm.xy, dxt5nm.xy)));
return dxt5nm;
}
float mad_sat1(in float m1, in float m2, in float a)
{
return saturate(m1 * m2 + a);
}
float3 mad_sat3(in float3 m1, in float3 m2, in float3 a)
{
return saturate(m1 * m2 + a);
}
float4 mad_sat4(in float4 m1, in float4 m2, in float4 a)
{
return saturate(m1 * m2 + a);
}
//
float4 calcHemisphereLighting(in float3 N_vs, in float3 hemisphere_dir_vs)
{
float sky_val = dot(N_vs, hemisphere_dir_vs);
//fdef SIDE_AS_RIMLIGHT
//loat3 hemisphere_lighting = 0; // side/rim light is additive elsewhere
//lse
float2 tangent = float2(sky_dome_color_front.w, sky_dome_color_back.w);
float side_mod = dot(N_vs.xy, tangent);
float3 hemisphere_lighting = sky_dome_color_side.xyz * (1 - abs(sky_val)) * (0.7 + side_mod * side_mod * 0.3f); // omni-directional side lighting
//ndif
float groundlight_param=0;
//fdef HALFTONE
//emisphere_lighting += sky_dome_color_front.xyz * saturate(sky_val);
//emisphere_lighting += sky_dome_color_back.xyz * saturate(-sky_val);
//roundlight_param = -sky_val;
//lse
hemisphere_lighting += lerp(sky_dome_color_back.xyz, sky_dome_color_front.xyz, rangeCompress1(sky_val)); // front and back lighting
//ndif
return float4(hemisphere_lighting, groundlight_param);
}
//
float2 calcUVProjection(in float3 tangent, in float3 binormal, in float3 invec)
{
float horizDotP = -dot(tangent,invec);
float vertDotP = -dot(binormal,invec);
return float2(horizDotP, vertDotP);
}
//fdef VERTEX_ONLY_LIGHTING
//efine NO_NORMALMAP
//ndef SHADOW_BUFFER
//ndif
struct PS_INPUT_NORMAL
{
//ifdef SM30
float4 position_screen : SV_Position;
//endif
float4 texcoords : TEXCOORD0; // ST0 and ST1 packed
float4 position_vs : TEXCOORD1; // view space position, world space fog height interpolater fog_value if VERTEX_FOG
float4 color0 : TEXCOORD2;
float4 instanceParam : TEXCOORD3;

//ifndef DEPTH_ONLY
// vpos.xyw are used in place of position_screen when SM30 is not available
float4 hemisphere_dir_vs_and_unused : TEXCOORD4; // xyz: hemisphere lighting direction
// w: unsued screen space position.x
float4 vpos_xyw_and_unused: TEXCOORD5; // xyz: screen space position.xyw (for terrain_heightmap, detail fade alpha)
// w: unused
float4 normal_vs_and_unused : TEXCOORD6; // xyz: view space normal
// w: unused
//#ifndef VERTEX_ONLY_LIGHTING
float4 vertex_lighting : TEXCOORD7; // alpha is vertex ambient occlusion value, rgb is vertex lighting values, (plus ambient on <SM30)
//#endif
//#ifndef NO_NORMALMAP
float3 tangent_vs : COLOR0; // view space tangent, range compressed
float3 binormal_vs : COLOR1; // view space binormal, range compressed
//#else
// #ifdef SINGLE_DIRLIGHT
// #ifdef SM30
// float4 sdl_values : COLOR0; // N*L, L*R
// #else
// float4 diffuse_value : COLOR0; // alpha is specular_value
// #endif
// #elifdef VERTEX_ONLY_LIGHTING
// float4 diffuse_value : COLOR0; // alpha is specular_value
// #endif
// float4 backlight_params : COLOR1; // xy - backlight, zw - unused
//#endif
//endif
//ifndef DEPTH_ONLY
//#ifdef SM30
// Use fragmentIsFrontFacingSign or fragmentIsFrontFacingBool to access these members with a
// particular interpretation. The DX9 value in particular only has a sign bit, not a numerical
// value, and the DX11 value is a bool. Use the existing accessors or add a new one, if
// appropriate, rather than directly touching these members.
// #ifdef D3D11
bool facing : SV_IsFrontFace;
// #else
// float facing : VFACE;
// #endif
//#endif
//endif
};
float fragmentIsFrontFacingSign(const PS_INPUT_NORMAL fragment)
{
//ifndef DEPTH_ONLY
//#ifdef SM30
return (fragment.facing > 0) * 2 - 1;
//#else
// return 1.0;
//#endif
//else
//return 1.0;
//endif
}
bool fragmentIsFrontFacingBool(const PS_INPUT_NORMAL fragment)
{
//ifndef DEPTH_ONLY
//#ifdef SM30
return fragment.facing > 0;
//#else
// return true;
//#endif
//else
//return true;
//endif
}
struct PS_INPUT_SIMPLE
{
//ifdef SM30
float4 position_screen : SV_Position;
//endif
float4 texcoord : TEXCOORD0;
};
struct PS_INPUT_SPRITE
{
//ifdef SM30
float4 position_screen : SV_Position;
//endif
//ifdef MULTI_CHANNEL
//float4 texcoord : TEXCOORD0;
//else
float4 texcoord : TEXCOORD0;
//endif
float4 position_vs : TEXCOORD1; // view space position, world space fog height interpolater fog_value if VERTEX_FOG
//ifdef MULTI_CHANNEL
//float4 color : TEXCOORD2; // matches VS_OUTPUT_NORMAL to allow mixing normal VS and sprite PS for particles
//else
float4 color : TEXCOORD2; // matches VS_OUTPUT_NORMAL to allow mixing normal VS and sprite PS for particles
//endif
// DX11TODO: Can we remove this block?
//ifndef SM30
//// alternatives to VPOS for SM20:
//// matches VS_OUTPUT_NORMAL to allow mixing normal VS and sprite PS for particles
//float4 hemisphere_dir_vs_and_unsued : TEXCOORD4;
//float4 vpos_xyw_and_unused : TEXCOORD5;
//float4 normal_vs_and_unused : TEXCOORD6;
//endif
};
struct PS_INPUT_PARTICLE
{
//ifdef SM30
float4 position_screen : SV_Position;
//endif
//ifndef SM30
//// matches VS_OUTPUT_NORMAL to allow mixing normal VS and sprite PS for particles
//float4 hemisphere_dir_vs_and_unused : TEXCOORD4;
//endif
float4 vpos_xyw_and_unused: TEXCOORD5;
//ifndef SM30
//float4 normal_vs_and_unused : TEXCOORD6;
//endif
float4 position_vs : TEXCOORD1; // view space position, world space fog height interpolater fog_value if VERTEX_FOG
float2 texcoord : TEXCOORD0;
float4 color : TEXCOORD2; // matches VS_OUTPUT_NORMAL to allow mixing normal VS and sprite PS for particles
float4 fogvalues : TEXCOORD3;
};
struct PS_INPUT_CYLINDER_TRAIL
{
//ifdef SM30
float4 position_screen : SV_Position;
//endif
float2 texcoord : TEXCOORD0;
float4 position_vs : TEXCOORD1; // view space position, world space fog height interpolater fog_value if VERTEX_FOG
float4 color : TEXCOORD2;
//float3 center_vs : TEXCOORD3;
//float radius_vs : TEXCOORD4;
};
// These don't seem valid anymore, fog_dist.z/w are used for high fog values
// #ifdef VOLUME_FOG
// #macro PS_CONSTANT_FOG_DENSITY
// fog_dist.z
// #endmacro
// #macro PS_CONSTANT_FOG_AMBIENT_SCATTER
// fog_dist.w
// #endmacro
// #endif
TextureCube cubemap_lookup_texture : register(t14);
SamplerState samcubemap_lookup_texture : register(s14);
//fdef MANUAL_DEPTH_TEST
//AMPLER_DECL(depth_buffer_sampler, 15);
//lifdef SHADOW_BUFFER
//AMPLER_DECL(shadow_buffer_texture, 15);
//ndif
//
// tex2Dlod and texCUBElod do not get pulled outside dynamic branches,
// but they also are not supported on SM2, so use these wrappers instead.
float4 sampleTex2DNoMipsInternal(in Texture2D t,
in SamplerState samp,
float2 uvs)
{
//ifdef D3D11
return t.SampleLevel(samp, uvs, 0);
//elseifdef SM30
//return tex2Dlod(t, float4(uvs, 0, 1));
//else
//return tex2D(t, uvs);
//endif
}
float4 sampleTexCubeLodInternal(in TextureCube t,
in SamplerState samp,
float3 uvs,
float miplevel)
{
//ifdef D3D11
return t.SampleLevel(samp, uvs, miplevel);
//elseifdef SM30
//return texCUBElod(t, float4(uvs, miplevel));
//else
//return texCUBE(t, uvs);
//endif
}
float4 sampleTexCubeNoMipsInternal(in TextureCube s,
in SamplerState samp,
in float3 t)
{
//fdef D3D11
return s.SampleLevel(samp, t, 0);
//lseifdef SM30
//eturn texCUBElod(s, float4(t, 0));
//lse
//eturn texCUBE(s, t);
//ndif
}
float4 sampleTex2DInternal(in Texture2D s,
in SamplerState t,
in float2 uvs)
{
//ifdef D3D11
return s.Sample(t, uvs);
//else
//eturn tex2D(s, uvs);
//endif
}
float4 sampleTex2DProjInternal(in Texture2D s,
in SamplerState t,
in float4 uvs)
{
//ifdef D3D11
return s.Sample(t, uvs.xy/uvs.w); // DX11TODO: if this is used anywhere, ensure this is this right
//else
//eturn tex2Dproj(s, uvs);
//endif
}
float4 sampleTex3DInternal(in Texture3D s,
in SamplerState t,
in float3 uvs)
{
//ifdef D3D11
return s.Sample(t, uvs);
//else
//eturn tex3D(s, uvs);
//endif
}
float4 sampleTexCubeInternal(in TextureCube s,
in SamplerState t,
in float3 uvs)
{
//ifdef D3D11
return s.Sample(t, uvs);
//else
//eturn texCUBE(s, uvs);
//endif
}
//
float4 GetIntersectionWithEllipsoid(
//fdef _PS3
// float3x4 matEllipsoidInv,
//lse
column_major float4x3 matEllipsoidInv,
//ndif
float3 ray_vs, out float4 normal, int bCullPixels )
{
float ray_length = length( ray_vs );
//fdef _PS3
//loat3 org_vs = float3( matEllipsoidInv[0][3], matEllipsoidInv[1][3], matEllipsoidInv[2][3] );
//ay_vs = mul( matEllipsoidInv, float4( ray_vs, 0 ) );
//lse
float3 org_vs = matEllipsoidInv[3];
ray_vs = mul( float4( ray_vs, 0 ), matEllipsoidInv );
//ndif
float4 t;
t = 0.0f;
float a = dot( ray_vs, ray_vs );
float b = 2 * dot( ray_vs, org_vs );
float c = dot( org_vs, org_vs ) - 1;
normal = 0.0f;
float discriminant = b * b - 4.0f * a * c;
if ( bCullPixels )
clip( discriminant );
if ( discriminant >= 0.0f )
{
discriminant = sqrt( discriminant );
t.y = ( -b - discriminant ) / ( 2 * a );
t.z = ( -b + discriminant ) / ( 2 * a );
// sort intersection order to give a properly ordered interval
t.yz = float2( min( t.y, t.z ), max( t.y, t.z ) );
// intersect the interval with [0,1].
t.yz = min( max( t.yz, 0.0f ), 1.0f );
float3 hitPoint = org_vs + ray_vs * t.y;
//fndef CONSTANT_DENSITY
// integral of simple density function - distance to z-axis is density
float3 exitDelta = ray_vs * ( t.z - t.y );
t.w = 1 - dot( hitPoint, hitPoint ) -
dot( hitPoint, exitDelta ) -
0.3333333 * dot( exitDelta, exitDelta );
//ndif
// length of ray-ellipsoid intersection
t.x = ( t.z - t.y ) * ray_length;
normal.xyz = hitPoint;
}
//normal.w = dot( normal.xyz, normalize( ray_vs ) );
return t;
}
//////////////////////////////////////////////////////////////////////
float3 ToneMapLDR(float3 color)
{
//fdef NO_EXPOSURE | UBERLIGHT_DEBUG
//eturn color;
//lse
return color * exposure_transform.x;
//ndif
}
float3 InvToneMapLDR(float3 color)
{
//fdef NO_EXPOSURE | UBERLIGHT_DEBUG
//eturn color;
//lse
return color * exposure_transform.y;
//ndif
}
float InvToneMapLDRIntensityToIntensity(float lum)
{
//fdef NO_EXPOSURE | UBERLIGHT_DEBUG
//eturn lum;
//lse
return lum * exposure_transform.y;
//ndif
}
float InvToneMapLDRToLuminance(float3 color)
{
return InvToneMapLDRIntensityToIntensity(getIntensity(color));
}
float3 ToneMapHDR(float3 color)
{
return color * exposure_transform.z;
}
float3 InvToneMapHDR(float3 color)
{
return color * exposure_transform.w;
}
////////////////////////////////////////////////////////////////////////
//// Fogging
/// Volume fog interface:
//fdef VOLUME_FOG
//oat3 fogAttenLight(float3 lightColor, float3 fogColor, float distance, float fogDensity)

//eturn lerp(fogColor, lightColor, exp(fogDensity * distance));

//oat3 fogApplyVolumeFog(float3 color,
//fdef _PS3
// float3x4 fog_matrix,
//lse
// column_major float4x3 fog_matrix,
//ndif
// float3 position_vs)

//loat4 normal = float4( 0.7071, 0.0, 0.7071, 0.0 );
//loat4 t = GetIntersectionWithEllipsoid( fog_matrix, position_vs, normal, 0 );
//eturn fogAttenLight(color, fog.color.rgb, max(0.0, t.x * t.w));

//ndif
/// Vertex fog interface:
float3 fogApplyVertexFog(float3 color, float fogvalue)
{
return float3(lerp(color, fog_color_low.xyz, fogvalue));
}
/// Default fog interface:
float3 fogApplyDefault(float3 color, float distance_to_camera, float fog_height_coord)
{
float fog_coord_low = saturate((distance_to_camera - fog_dist.x) * fog_dist.y) * fog_color_low.a;
float fog_coord_high = saturate((distance_to_camera - fog_dist.z) * fog_dist.w) * fog_color_high.a;
fog_height_coord = saturate(fog_height_coord);
// fog_height_coord = sqrt(fog_height_coord);
// this is equal to lerp(lerp(color, fog_color_low.rgb, fog_coord_low), lerp(color, fog_color_high.rgb, fog_coord_high), fog_height_coord)
return color + lerp(fog_coord_low * (fog_color_low.rgb - color),
fog_coord_high * (fog_color_high.rgb - color),
fog_height_coord);
}
float calculateDepthOfField(in float zdepth, in float scale, in float4 params1, in float3 params2, in float eff_border_blur, out float is_sky)
{
float focusRate = zdepth < params1.x ? params1.z : params1.w;
float blur_delta = min(1.0, (zdepth - params1.x) * focusRate);
is_sky = saturate(zdepth * params2.y + params2.x);
float ret = lerp(saturate((blur_delta + params1.y) * scale), params2.z, is_sky);
return saturate(max(ret, eff_border_blur));
}
float3 applyLocalContrast(in float3 orig_color, in float3 blur_color, in float local_contrast_scale, in float unsharp_amount, in float unsharp_threshold)
{
float3 diff = orig_color - blur_color.rgb;
float local_contrast_amount = saturate(local_contrast_scale * (getIntensity(-diff)));
orig_color = lerp(0.5f, orig_color, local_contrast_amount + 1);;
float3 unsharp_masked = orig_color + unsharp_amount*(diff);
float amount = saturate( (getIntensity(abs(diff)) - unsharp_threshold) * 8); // quickly ramp up to applying the unsharp mask after the threshold
orig_color = lerp(orig_color, unsharp_masked, amount);
return orig_color;
}
float4 nw_mapsnap_sampleTexcolorInternal(in Texture2D s,
in SamplerState t)
{
float4 avg_color;
float2 uv = float2(0.23,0.23);
avg_color = sampleTex2DInternal(s, t, uv);
uv[0] += 0.1;
avg_color += sampleTex2DInternal(s, t, uv);
uv[0] -= 0.2;
avg_color += sampleTex2DInternal(s, t, uv);
uv[1] += 0.2;
avg_color += sampleTex2DInternal(s, t, uv);
uv[0] += 0.2;
avg_color += sampleTex2DInternal(s, t, uv);
avg_color /= 5;
return avg_color;
}
float3 nw_mapsnap_colorize(in float3 color)
{
//return color;
float3 parchment_color = float3(0.6,0.6,0.55);
float intensity = (color.x+color.y+color.z)/3;
float3 factors;
float minval = min(min(color.r,color.g),color.b)+0.001;
float3 diff;
diff.r = color.r-minval;
diff.g = color.g-minval;
diff.b = color.b-minval;
factors.x = diff.r*diff.r-diff.g*diff.b;
factors.y = diff.g*diff.g-diff.r*diff.b;
factors.z = diff.b*diff.b-diff.r*diff.g;
float fGreenFactor = color.g/(min(color.b,color.r)+0.001);
//color.r = color.g = color.b = fGreenFactor;
//color.g += color.g*fGreenFactor;
//color.b += color.b*fGreenFactor;
if (fGreenFactor > 1.2)
{
color.g += min(0.3*(fGreenFactor-1.2),0.15);
}
// brown out the low end
float adjust_factor = 0.4;//max(0.0,0.7-not_badness);
color += parchment_color*adjust_factor;
return saturate(color/(1+adjust_factor));
//return float3(abs(factors.x),abs(factors.y),abs(factors.z));
//return float3(0,0,0);
}
float3 calcIsoBar( float3 baseColor, float value, float scale )
{
float3 outColor = baseColor * scale;
float2 gradOfValue = float2(ddx(value), ddy(value));
float spreadOfValue = (abs(gradOfValue.x) + abs(gradOfValue.y)) * 2.5;
float integerLevel = floor(value + 0.5);
float barWeight = saturate(abs(value - integerLevel) / length(gradOfValue));
if (value >= integerLevel - spreadOfValue && value <= integerLevel + spreadOfValue)
{
float3 barColor = float3(1, 1, 1);
// highlight the contours near integer levels
if (integerLevel == 1)
barColor = float3(.25,0,0);
else
if (integerLevel == 2)
barColor = float3(0,.25,0);
else
if (integerLevel == 3)
barColor = float3(0,0,.25);
else
if (integerLevel == 4)
barColor = float3(1,0,0);
else
if (integerLevel == 5)
barColor = float3(0,1,0);
else
if (integerLevel == 6)
barColor = float3(0,0,1);
else
if (integerLevel == 7)
barColor = float3(1,1,0);
else
if (integerLevel == 8)
barColor = float3(0,1,1);
outColor = lerp(barColor, outColor, barWeight);
}
return outColor;
}
/////////////////////////////////////////////////////////////////////////
/// Sampling a depth texture
float viewSpaceDepth(float depthHW)
{
//fdef _XBOX
/// Derivation:
/// Reverse Z direction (0=far, 1=near)
/// depthHW = 1.0 - depthHW;
/// "Invert" projection
/// depthZ = proj_mat_Z.w / ( proj_mat_W.z * xboxDepth - proj_mat_Z.z );
/// This code is the simplified version
//eturn -proj_mat_Z.w / ( proj_mat_W.z - proj_mat_W.z * depthHW - proj_mat_Z.z );
//lse
float fOneIfOrtho = proj_mat_W.w;
float fNumerator = proj_mat_Z.w - depthHW * fOneIfOrtho;
float fDenominator = (1.0f-fOneIfOrtho)*depthHW + proj_mat_Z.z;
return fNumerator / fDenominator;
//ndif
}
float4 viewSpaceDepth4(float4 depthHW)
{
//fdef _XBOX
/// Derivation:
/// Reverse Z direction (0=far, 1=near)
/// depthHW = 1.0 - depthHW;
/// "Invert" projection
/// depthZ = proj_mat_Z.w / ( proj_mat_W.z * xboxDepth - proj_mat_Z.z );
/// This code is the simplified version
//eturn -proj_mat_Z.wwww / ( proj_mat_W.zzzz - proj_mat_W.zzzz * depthHW - proj_mat_Z.zzzz );
//lse
float fOneIfOrtho = proj_mat_W.w;
float4 fNumerator = proj_mat_Z.wwww - depthHW * fOneIfOrtho;
float4 fDenominator = (1.0f-fOneIfOrtho)*depthHW + proj_mat_Z.zzzz;
return fNumerator / fDenominator;
//ndif
}
float calcHWDepth(float4 depthVals)
{
//fdef RAWZ_DEPTH
//
//// correct for any rounding error before depth reconstruction
//float3 depth = floor( 255.0f*depthVals.arg +0.5f);
//// the 0.00000001 is there to fix a compiler bug
//return 0.00000001 + dot(depth, float3(
// 0.996093809371817670572857294849, 0.0038909914428586627756752238080039,
// 1.5199185323666651467481343000015e-5)) / 255.0f;
//
//lse
{
return depthVals.r;
}
//ndif
}
// Sample TEXTURE at TEXCOORD and return the screen space depth.
float sampleTexDepthInternal(in Texture2D depth_tex,
in SamplerState samdepth_tex,
in float2 texcoord)
{
return calcHWDepth(sampleTex2DNoMipsInternal(depth_tex, samdepth_tex, texcoord));
}
// Sample TEXTURE at TEXCOORD and return the view space depth.
float sampleTexDepthVSInternal(in Texture2D depth_tex,
in SamplerState samdepth_tex,
in float2 texcoord)
{
return viewSpaceDepth(calcHWDepth(sampleTex2DNoMipsInternal(depth_tex, samdepth_tex, texcoord)));
}
float calcDepthNormalized(float4 depthVals)
{
float depthZ = calcHWDepth(depthVals);

depthZ = viewSpaceDepth(depthZ);
return depthZ * depth_range.y;
}
// extracts a view space normal from the compressed MRT format
float3 extractNormal(float2 normal_xy, float gloss)
{
float3 normal_vs;
normal_vs.xy = normal_xy;
normal_vs.z = sqrt(1 - normal_vs.x * normal_vs.x - normal_vs.y * normal_vs.y);
normal_vs.z = lerp(normal_vs.z, -normal_vs.z, step(gloss, 0)); // negative normal z if gloss <= 0
return normal_vs;
}
float compressDepth(float camera_z)
{
return sqrt(-camera_z * depth_range.y);
}
float uncompressDepth(float compressed_depth)
{
return compressed_depth * compressed_depth * depth_range.x;
}
// extracts a view space position from the compressed depth and screen coordinates [0,0]-[1,1]
float3 extractPosition(float compressed_depth, float2 screen_coords)
{
float3 position_vs;
float depth = uncompressDepth(compressed_depth);
position_vs.xy = depth * depth_range.zw * (screen_coords.xy * float2(2.0f, -2.0f) + float2(-1.0f, 1.0f));
position_vs.z = -depth;
return position_vs;
}
// extracts a view space position from the depth and screen coordinates [0,0]-[1,1]
float3 extractPositionUncompressed(float depth, float2 screen_coords)
{
float3 position_vs;
position_vs.xy = depth * depth_range.zw * (screen_coords.xy * float2(2.0f, -2.0f) + float2(-1.0f, 1.0f));
position_vs.z = -depth;
return position_vs;
}
/*
float encodeDepth(float3 position_vs)
{
//fdef _XBOX
//return 1 - dot(proj_mat_Z, float4(position_vs, 1)) / dot(proj_mat_W, float4(position_vs, 1));
//lse
return dot(proj_mat_Z, float4(position_vs, 1)) / dot(proj_mat_W, float4(position_vs, 1));
//ndif
}*/
//efine NOGRAD
//#define USEDD
//efine SSAO_PREPASS_ENABLED
float calcSSAOInternal(in Texture2D depth_tex,
in SamplerState samdepth_tex,
in float depth, float3 position_vs, float2 screen_texcoord,
in Texture2D noise_tex,
in SamplerState samnoise_tex,
float4 proj_mat_X,
float4 proj_mat_Y,
float4 plane_res,
float4 depth_step,
float4 param_vec,
float4 ssao_vectors[16],
int offset)
{
float result=0;
float farDepth = depth_range.x;
//ifdef USEDD
//loat derivx = ddx(screen_texcoord.x);
//loat derivy = ddy(screen_texcoord.y);
//else
float derivx = depth_step.x;
float derivy = depth_step.y;
//endif
//ifndef _PS3
//ifdef NOGRAD
[branch]
//else
//flatten]
//endif
//endif
//float foo = 0;
if (depth < farDepth)
{
float2 screen_texcoordx = float2(screen_texcoord.x + derivx, screen_texcoord.y);
float2 screen_texcoordy = float2(screen_texcoord.x, screen_texcoord.y + derivy);
float depthx = sampleTexDepthVSInternal(depth_tex, samdepth_tex, screen_texcoordx);
float depthy = sampleTexDepthVSInternal(depth_tex, samdepth_tex, screen_texcoordy);
float3 position_vsx = extractPositionUncompressed(depthx, screen_texcoordx);
float3 position_vsy = extractPositionUncompressed(depthy, screen_texcoordy);
// This is supposed to prevent rim shadowing of stuff - there may not be a perfect value to check against.
if (abs(depthx-depth) < 5 && abs(depthy-depth) < 5)
{
float3 normal = normalize(cross(position_vsy - position_vs,position_vsx - position_vs));
int i;
float4 plane = sampleTex2DNoMipsInternal(noise_tex, samnoise_tex, float2(plane_res.xy * screen_texcoord));
plane.xyz = rangeExpand(plane.xyz);
float ssao = 0;
//fdef SSAO_PREPASS
int iSamplesToRun = 8; // we want this to be as low as we can get it and not create holes in the final image. Holes are very noticeable
//lse
//fdef SSAO_PREPASS_ENABLED
//int iSamplesToRun = 12;
//lse
//int iSamplesToRun = 8;
//ndif
//ndif
//ifndef _PS3
[unroll]
//endif
for (i = 0; i < iSamplesToRun; ++i)
{
int iVec = i+offset;
float3 reflectedvec = reflect(ssao_vectors[iVec%16].xyz, plane.xyz);
reflectedvec *= sign(dot(reflectedvec, normal));
//fdef SSAO_PREPASS
float fSampleDist = 0.7; // this doesn't need to go all the way up to 1.0, since we are going to do a bilinear sample of this mask
//lse
// float fSampleDist = ssao_vectors[iVec].w;
//ndif
// I am adjusting the vector here to avoid shallow creases from generating occlusion, which looks
// bad on terrain, etc. It's also an optimization cause it puts less stuff in the mask
float3 ssao_vector = (0.15 * normal + 0.85 * reflectedvec) * fSampleDist;
float4 sample_pos_vs = float4(position_vs + ssao_vector * plane_res.w, 1);
// this line can be used to verify that diff is coming out right. (It should be 0 for position_vs)
//sample_pos_vs = float4(position_vs, 1);
float4 sample_projected;
sample_projected.x = dot(proj_mat_X, sample_pos_vs);
sample_projected.y = dot(proj_mat_Y, sample_pos_vs);
sample_projected.w = dot(proj_mat_W, sample_pos_vs);
float2 texcoord = sample_projected.xy / sample_projected.w * 0.5f + 0.5f;
texcoord.y = 1-texcoord.y;
// doing this sample is slow, presumably because it's not cached.
float sample_depth = sampleTexDepthVSInternal(depth_tex, samdepth_tex, texcoord);
float diff = -(sample_pos_vs.z + sample_depth);
//fdef ASDFASDF
// if (i==0)
// {
// //foo = ssao_vector.y; //very suspicious
// //foo = abs(normal.y); // hella lines
// //foo = position_vsx.x+0.6;
// //foo = abs(position_vsx - position_vs).x*5;
// //foo = abs(position_vs.x)*0.1;
// //foo = abs(depthy-depth)*100;
// //foo = abs(screen_texcoordy.y - screen_texcoord.y)*200;
// //foo = derivy*500;
// //foo = position_vs.y;
// //foo = (screen_texcoord.y-0.3)*8; // screen_texcoord is wrong??
// //foo = (depth*0.01-0.21)*24;
// //viewSpaceDepth(calcHWDepth(sampleTex2DNoMips(depth_tex, texcoord)));
// //foo = sampleTex2DNoMips(depth_tex, screen_texcoord);
// //foo = (sampleTex2DNoMips(depth_tex, screen_texcoord)-0.5)*10;
// //foo = (calcHWDepth(sampleTex2DNoMips(depth_tex, screen_texcoord))-0.5)*10;
// //foo = viewSpaceDepth(calcHWDepth(sampleTex2DNoMips(depth_tex, screen_texcoord)))-1.4;
// //foo = (depth_range.w-0.4)*15; // THIS ONE IS FINE
// //foo = (position_vsx.y+0.4)*1.5;
// //foo = (sample_pos_vs.x+1)*0.5;
// //foo = (sample_depth*0.01-0.2)*4; // I'm getting lines in this now
// //foo = texcoord.x;
// foo = abs(diff); // this always looks wrong
// //foo = (proj_mat_X.x-1.12)*300;
// //foo = (proj_mat_Y.y-1.919)*300;
// //foo = (abs(proj_mat_W.z)-0.99)*70; // these 3 all seem the same
// //float4 sample_pos_vs = float4(position_vs + ssao_vector * plane_res.w, 1);
// //foo = (-sample_pos_vs.z*0.005-0.4)*3; // this looks a little off maybe? (think it's just the debug view)
// //foo = -position_vs.x;
// //foo = abs(position_vs.x - sample_pos_vs.x)*20000; // these are identical
// //foo = abs(screen_texcoord.y - texcoord.y)*200; // these are not
// //foo = -sample_projected.x*0.01;
// // the next two are off, but not good tests?
// //foo = screen_texcoord.y > 0.4176; // the one on the right is fatter. (because of quantization?)
// //foo = texcoord.y < 0.183;
// }
//ndif
[flatten]
// this line makes sure not to include things that are self occluding in the distance. Not sure how it works
if (diff > 0.05+0.07*pow(depth/50*saturate(sqrt((1-abs(normal.z)))),2))
{
//fdef SSAO_PREPASS
if (diff < 8)
return 1.0f;
//lse
// diff *= param_vec.z;
// ssao += param_vec.w / (1.0 + diff*diff);
//ndif
}
}
//result = saturate(param_vec.x * param_vec.w*(pow(2,hits/NUM_SSAO_SAMPLES())-1) - param_vec.y);
result = saturate(param_vec.x * ssao /iSamplesToRun - param_vec.y);
}
}
else
{
result = 0;
}
return result;
}
Texture2D depth_sampler : register(t0);
SamplerState samdepth_sampler : register(s0);
Texture2D plane_sampler : register(t1);
SamplerState samplane_sampler : register(s1);
uniform float4 proj_mat_X : register( c11 );
uniform float4 proj_mat_Y : register( c12 );
uniform float4 plane_res : register( c13 );
uniform float4 param_vec : register( c14 );
uniform float4 depth_step : register( c15 );
uniform float4 ssao_vectors[ 16 ]
: register( c16 );
struct PS_OUTPUT
{
float4 color : SV_Target0;
};
PS_OUTPUT main_output(PS_INPUT_SIMPLE fragment)
{
PS_OUTPUT output;
output.color.rgba = 0.0f;
int i=0;
float2 screen_texcoord = fragment.texcoord.xy / fragment.texcoord.w;
// this is my hack for viewing the left half of the screen
//if (screen_texcoord.x > 0.5)
//screen_texcoord.x -= 0.5;
screen_texcoord = floor(float2(screen_texcoord.x/inv_screen_params.x,screen_texcoord.y/inv_screen_params.y))*4*depth_step.xy;
screen_texcoord -= 1.5*depth_step.xy;
[unroll]
for (i=0;i<4;i++)
{
float depth = sampleTexDepthVSInternal(depth_sampler, samdepth_sampler, screen_texcoord);
float3 position_vs = extractPositionUncompressed(depth, screen_texcoord);
// i*3 is an arbitrary offset here, but it creates better "coverage" than i*4, assuming I'm doing 8 samples
if (calcSSAOInternal(depth_sampler, samdepth_sampler, depth, position_vs, screen_texcoord, plane_sampler, samplane_sampler, proj_mat_X, proj_mat_Y, plane_res, depth_step, param_vec, ssao_vectors, i*3))
{
output.color.a = 1.0f;
return output;
}
screen_texcoord += depth_step.xy;
}
return output;
}
Post edited by svimepelsen on

Comments

  • speedofheatspeedofheat Member Posts: 111 Arc User
    edited February 2013
    I am also getting this error
    y3m-yM6W2jBAA7NpYi95PewTOHD9vSNpFGl3huKvuKsGif7jH9lBSYRtnx-AxOUzQw00u0SrjnMeAt0McFsPmCC2FoawxgX3ZON4Ork7H39MCRYsgBUn0QYSADDqYpB6wB5twq-_jNOp7AdrNeItQjiXChE9kwGvBsqc-vTz7oj3YM?width=660&height=198&cropmode=none
  • sharonathenasharonathena Member Posts: 16 Arc User
    edited May 2013
    if it a shader. and your ship vanishes, then it your graphics card its too old. and your shader can't load the image. follow the requirements on star trek forums, other then that the dev would of replyed. i get a lot of lag that about it. play the game on lowest setting.
  • tordesignstordesigns Member Posts: 1
    edited May 2013
    most gpu's can use shader model 3 for several years now.. Best way to help narrow the issue down for the dev's is to give them a error code where it happens and what objects you believe are involved so they can figure out if its a coding error or related to a location of an object or texture related is. and depending on the issue it may take time to fix , as it could break other things trying to fix it
Sign In or Register to comment.