¿donde se puede ver el video de Tragnarion?
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
#587
Programación gráfica / Sprites 2D con DX9
30 de Julio de 2007, 09:31:26 AM
Aquí está el codigo a nivel de shader....
Código [Seleccionar]
// Transform a ScreenSpace position To ClipSpace (z=0;w=1)
float4 FromScreenSpaceToClipSpace(float4 position)
{
float4 clipCoord;
clipCoord.x = ( ((position.x/ ENV_RenderTargetWidth) * 2.0f) - 1.0f );
clipCoord.y = ( 1.0f-((position.y / ENV_RenderTargetHeight)* 2.0f) );
clipCoord.z = 0;
clipCoord.w = 1;
// DX texture correction
clipCoord.x -= (0.5f / ENV_RenderTargetWidth);
clipCoord.y -= (0.5f / ENV_RenderTargetHeight);
return clipCoord;
}
#588
Programación gráfica / Sprites 2D con DX9
25 de Julio de 2007, 12:33:06 PM
¿y el vértice inferior derecho?
El Vertex Shader lo que hace es devolver una posicion en Clip Space. Clip Space es como un cubo que pasa por el monitor, y el vértice en clip space coincide con la pantalla cuando se dividen todos sus componentes por w. Así que DX una vez calculada la posición del vértice, la divide por w, y luego aplica la matriz del ViewPort.
Lo importante aquí es que Clip Space es un cubo que tiene el 0,0 en el centro de la pantalla, y los lados son -1,1. Por tanto lo que haces con la matriz de perspectiva y con los valores que transformas es pasar de Screen Space a Clip Space. Te podrías ahorrar sin problemas la matriz de Projección, y hacer los cálculos en el vértice, si quisieras.
Sin embargo, si utilizas D3DFVF_XYZRHW, le estás diciendo a D3D que se salte el proceso de Vertex Shader y ya le das los valores en Screen Space. El problema de utilizar este sistema es que el Vertex Shader NO se ejecuta.
De todas formas, todavía no he empezado con la clase sprite, y estoy convencido de que el problemita del pixel me tocará las narices. Cuando lo tenga, te mando el código!!!
El Vertex Shader lo que hace es devolver una posicion en Clip Space. Clip Space es como un cubo que pasa por el monitor, y el vértice en clip space coincide con la pantalla cuando se dividen todos sus componentes por w. Así que DX una vez calculada la posición del vértice, la divide por w, y luego aplica la matriz del ViewPort.
Lo importante aquí es que Clip Space es un cubo que tiene el 0,0 en el centro de la pantalla, y los lados son -1,1. Por tanto lo que haces con la matriz de perspectiva y con los valores que transformas es pasar de Screen Space a Clip Space. Te podrías ahorrar sin problemas la matriz de Projección, y hacer los cálculos en el vértice, si quisieras.
Sin embargo, si utilizas D3DFVF_XYZRHW, le estás diciendo a D3D que se salte el proceso de Vertex Shader y ya le das los valores en Screen Space. El problema de utilizar este sistema es que el Vertex Shader NO se ejecuta.
De todas formas, todavía no he empezado con la clase sprite, y estoy convencido de que el problemita del pixel me tocará las narices. Cuando lo tenga, te mando el código!!!
#589
Programación gráfica / Sprites 2D con DX9
25 de Julio de 2007, 07:53:47 AM
¿Entonces al final como te queda tu matriz?
#590
Programación gráfica / Sprites 2D con DX9
24 de Julio de 2007, 05:01:20 PM
Bueno, tu problem está bien documentando en el SDK de DX. todo es debido a que en DX el centro del pixel no está situado en la esquina superior izquierda como nos pensamos, y por tanto la asignación de texturas a pixels no es perfecta. Para ello hay que hacer una corrección en el shader. Pero como veo que no usas shaders, deberás hacerlo en tu propia matriz de transformación.
Precisamente ahora voy a hacer una clase de sprites y tengo que resolver este problema. Si lo consigo te digo cómo lo he hecho.
Si quieres, mírate el ejemplo de PostProcessing del SDk, verás que suma 0.5 en el Quad.
Precisamente ahora voy a hacer una clase de sprites y tengo que resolver este problema. Si lo consigo te digo cómo lo he hecho.
Si quieres, mírate el ejemplo de PostProcessing del SDk, verás que suma 0.5 en el Quad.
#591
Proyectos / Busco programador para juego
04 de Junio de 2007, 12:31:21 PM
La idea es genial. Lo que realmente veo interesante es que piensas en cosas nuevas, en lugar de intentar hacer lo mismo de lo mismo. Aunque no sé como funcionaría luego a nivel de juego, eso de mezclar piezas para ir evolucionando minetras estás pensando como colocarlas bien...En fin, se verá cuando se juegue :D
Pero la idea de empezar por algo sencillo, para acabar creando un grupo de desarrollo es la correcta. Esto tiene visos de tener mucho éxito.!!
Suerte con el proyecto!!
Pero la idea de empezar por algo sencillo, para acabar creando un grupo de desarrollo es la correcta. Esto tiene visos de tener mucho éxito.!!
Suerte con el proyecto!!
#592
Programación gráfica / Averiguar memoria de video de la tarjeta
29 de Noviembre de 2006, 01:43:03 PM
Creo que he encontrado un método: Windows Scripting :D
Ahora sólo falta que alguien lo haga en C++ y ponga el código , claro :D
Ahora sólo falta que alguien lo haga en C++ y ponga el código , claro :D
Código [Seleccionar]
On Error Resume Next
Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20
arrComputers = Array("PCCENTRAL12")
For Each strComputer In arrComputers
WScript.Echo
WScript.Echo "=========================================="
WScript.Echo "Computer: " & strComputer
WScript.Echo "=========================================="
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_VideoController", "WQL", _
wbemFlagReturnImmediately + wbemFlagForwardOnly)
For Each objItem In colItems
strAcceleratorCapabilities = Join(objItem.AcceleratorCapabilities, ",")
WScript.Echo "AcceleratorCapabilities: " & strAcceleratorCapabilities
WScript.Echo "AdapterCompatibility: " & objItem.AdapterCompatibility
WScript.Echo "AdapterDACType: " & objItem.AdapterDACType
WScript.Echo "AdapterRAM: " & objItem.AdapterRAM
WScript.Echo "Availability: " & objItem.Availability
strCapabilityDescriptions = Join(objItem.CapabilityDescriptions, ",")
WScript.Echo "CapabilityDescriptions: " & strCapabilityDescriptions
WScript.Echo "Caption: " & objItem.Caption
WScript.Echo "ColorTableEntries: " & objItem.ColorTableEntries
WScript.Echo "ConfigManagerErrorCode: " & objItem.ConfigManagerErrorCode
WScript.Echo "ConfigManagerUserConfig: " & objItem.ConfigManagerUserConfig
WScript.Echo "CreationClassName: " & objItem.CreationClassName
WScript.Echo "CurrentBitsPerPixel: " & objItem.CurrentBitsPerPixel
WScript.Echo "CurrentHorizontalResolution: " & objItem.CurrentHorizontalResolution
WScript.Echo "CurrentNumberOfColors: " & objItem.CurrentNumberOfColors
WScript.Echo "CurrentNumberOfColumns: " & objItem.CurrentNumberOfColumns
WScript.Echo "CurrentNumberOfRows: " & objItem.CurrentNumberOfRows
WScript.Echo "CurrentRefreshRate: " & objItem.CurrentRefreshRate
WScript.Echo "CurrentScanMode: " & objItem.CurrentScanMode
WScript.Echo "CurrentVerticalResolution: " & objItem.CurrentVerticalResolution
WScript.Echo "Description: " & objItem.Description
WScript.Echo "DeviceID: " & objItem.DeviceID
WScript.Echo "DeviceSpecificPens: " & objItem.DeviceSpecificPens
WScript.Echo "DitherType: " & objItem.DitherType
WScript.Echo "DriverDate: " & WMIDateStringToDate(objItem.DriverDate)
WScript.Echo "DriverVersion: " & objItem.DriverVersion
WScript.Echo "ErrorCleared: " & objItem.ErrorCleared
WScript.Echo "ErrorDescription: " & objItem.ErrorDescription
WScript.Echo "ICMIntent: " & objItem.ICMIntent
WScript.Echo "ICMMethod: " & objItem.ICMMethod
WScript.Echo "InfFilename: " & objItem.InfFilename
WScript.Echo "InfSection: " & objItem.InfSection
WScript.Echo "InstallDate: " & WMIDateStringToDate(objItem.InstallDate)
WScript.Echo "InstalledDisplayDrivers: " & objItem.InstalledDisplayDrivers
WScript.Echo "LastErrorCode: " & objItem.LastErrorCode
WScript.Echo "MaxMemorySupported: " & objItem.MaxMemorySupported
WScript.Echo "MaxNumberControlled: " & objItem.MaxNumberControlled
WScript.Echo "MaxRefreshRate: " & objItem.MaxRefreshRate
WScript.Echo "MinRefreshRate: " & objItem.MinRefreshRate
WScript.Echo "Monochrome: " & objItem.Monochrome
WScript.Echo "Name: " & objItem.Name
WScript.Echo "NumberOfColorPlanes: " & objItem.NumberOfColorPlanes
WScript.Echo "NumberOfVideoPages: " & objItem.NumberOfVideoPages
WScript.Echo "PNPDeviceID: " & objItem.PNPDeviceID
strPowerManagementCapabilities = Join(objItem.PowerManagementCapabilities, ",")
WScript.Echo "PowerManagementCapabilities: " & strPowerManagementCapabilities
WScript.Echo "PowerManagementSupported: " & objItem.PowerManagementSupported
WScript.Echo "ProtocolSupported: " & objItem.ProtocolSupported
WScript.Echo "ReservedSystemPaletteEntries: " & objItem.ReservedSystemPaletteEntries
WScript.Echo "SpecificationVersion: " & objItem.SpecificationVersion
WScript.Echo "Status: " & objItem.Status
WScript.Echo "StatusInfo: " & objItem.StatusInfo
WScript.Echo "SystemCreationClassName: " & objItem.SystemCreationClassName
WScript.Echo "SystemName: " & objItem.SystemName
WScript.Echo "SystemPaletteEntries: " & objItem.SystemPaletteEntries
WScript.Echo "TimeOfLastReset: " & WMIDateStringToDate(objItem.TimeOfLastReset)
WScript.Echo "VideoArchitecture: " & objItem.VideoArchitecture
WScript.Echo "VideoMemoryType: " & objItem.VideoMemoryType
WScript.Echo "VideoMode: " & objItem.VideoMode
WScript.Echo "VideoModeDescription: " & objItem.VideoModeDescription
WScript.Echo "VideoProcessor: " & objItem.VideoProcessor
WScript.Echo
Next
Next
Function WMIDateStringToDate(dtmDate)
WScript.Echo dtm:
WMIDateStringToDate = CDate(Mid(dtmDate, 5, 2) & "/" & _
Mid(dtmDate, 7, 2) & "/" & Left(dtmDate, 4) _
& " " & Mid (dtmDate, 9, 2) & ":" & Mid(dtmDate, 11, 2) & ":" & Mid(dtmDate,13, 2))
End Function
#593
Industria y mercado / Monto el grupo de desarrollo y ya nos quieren contratar xD
25 de Noviembre de 2006, 08:36:15 AM
Bueno, yo me quedaría más que con el $ con la experiencia que puedas obtener. Al ser el 1er desarrollo, teneis que ser muy exigentes con vosotros mismos, y no fijaros tanto en el $. Tomaroslo como si fuerais becarios, pero eso sí, becarios que han tenido muchas suerte.
:D
Animo!!
:D
Animo!!
#594
General Programadores / ZBuffer con NVidia
23 de Noviembre de 2006, 12:57:38 PM
Mirando por ahí, he visto que existe un falg en CreateDepthStencil que te hace un discard al hacer un Present o al hacer un SetDepthStencil, y que este flag es dependiente del driver.
Y también he visto que nvidia parece que utilizar CreateTexture en lugar de CreateDepthStencil ....¿Hay alguna razón para hacerlo así?
Y también he visto que nvidia parece que utilizar CreateTexture en lugar de CreateDepthStencil ....¿Hay alguna razón para hacerlo así?
#595
General Programadores / ZBuffer con NVidia
23 de Noviembre de 2006, 10:50:06 AM
¿sabeis si hay algo diferente de como se trata el ZBuffer con ATI que con NVidia? Es que Jade con ATI va bien, pero no con NVidia, y el problema es el ZBuffer. Si se desactiva sí va bien. Parece como si sólo se escribiera bien la primera vez y luego no.
Yo creo que el problema es que en NVidia debe hacer un discard del surface, y quizás haya que hacer algo adicional, recuperarlo en cada frame, o algo así.
¿ideas?
Yo creo que el problema es que en NVidia debe hacer un discard del surface, y quizás haya que hacer algo adicional, recuperarlo en cada frame, o algo así.
¿ideas?
#596
Industria y mercado / Visor de escenas para MAX
02 de Noviembre de 2006, 01:28:44 PM
Uff, que barato....Bueno, muchas gracias por la información, ya te iré contando...
#597
Industria y mercado / Visor de escenas para MAX
02 de Noviembre de 2006, 01:00:47 PM
Bueno, no usamos nada externo. Max generar los lightmaps y punto. No te pongo un Render porque es que queda igual que el render que hagas en MAX.
Interesante que no te funcionara. ¿usabais algún tipo de partición de espacio? ¿Octree?
¿Qué precio dabais?
Interesante que no te funcionara. ¿usabais algún tipo de partición de espacio? ¿Octree?
¿Qué precio dabais?
#598
Programación gráfica / ¿Usar DX8.1 con el SDK 9.0c ?
02 de Noviembre de 2006, 12:09:02 PM
¿Sabeis si se puede?
Lo que quiero es compilar para DX8.1 pero sin tener que instalar el SDK del 8.1...
El objetivo es que el visor esté para 8.1, que ya viene de serie con XP y así no obligo a instalar el 9.0c
Lo que quiero es compilar para DX8.1 pero sin tener que instalar el SDK del 8.1...
El objetivo es que el visor esté para 8.1, que ya viene de serie con XP y así no obligo a instalar el 9.0c
#599
Industria y mercado / Visor de escenas para MAX
02 de Noviembre de 2006, 11:58:17 AM
Bueno, esto está enfocado a arquitectura. Se trabaja en Max y se hacen renders, pero además puedes "volar" dentro.
#600
Industria y mercado / Visor de escenas para MAX
02 de Noviembre de 2006, 09:57:24 AM
Hemos creado un visor de escenas para MAX. Exporta la escena con lightmaps y el visor utiliza Newton para gestionar las colisiones. Está programado en C++ sobre DX 9.0c y utiliza la Fixed Pipeline. Lo cierto es que podría estar hecho en DX 8.1, pero nos ha dado pereza reinstalarlo, aunque al final quizás lo hagamos.
Bueno, hemos creado este proyecto porque nos han pedido un visor. Ahora nos gustaría saber si a alguien le interesaría utilizarlo, qué modelo de negocio podríamos utilizar y qué precios.
Mi idea sería que nos pasaran la escena y nosotros generar los lightmaps y darle un Exe empaquetado. Eso no les permite ir probando, pero creo que este tipo de producto es para un producto finalizado, y no para ir viendo como queda.
¿Podeis darme sugerencias?
Bueno, hemos creado este proyecto porque nos han pedido un visor. Ahora nos gustaría saber si a alguien le interesaría utilizarlo, qué modelo de negocio podríamos utilizar y qué precios.
Mi idea sería que nos pasaran la escena y nosotros generar los lightmaps y darle un Exe empaquetado. Eso no les permite ir probando, pero creo que este tipo de producto es para un producto finalizado, y no para ir viendo como queda.
¿Podeis darme sugerencias?