搜档网
当前位置:搜档网 › directx direct3d 的第八章的内容详细注释说明

directx direct3d 的第八章的内容详细注释说明

directx direct3d 的第八章的内容详细注释说明
directx direct3d 的第八章的内容详细注释说明

Checker

brick0

Ice

d3dUtility.cpp

////////////////////////////////////////////////////////////////////////////////////////////////// //

// File: d3dUtility.cpp

//

// Author: Frank Luna (C) All Rights Reserved

//

// System: AMD Athlon 1800+ XP, 512 DDR, Geforce 3, Windows XP, MSVC++ 7.0 //

// Desc: Provides utility functions for simplifying common tasks.

//

//////////////////////////////////////////////////////////////////////////////////////////////////

#include "d3dUtility.h"

bool d3d::InitD3D(

HINSTANCE hInstance,

int width, int height,

bool windowed,

D3DDEVTYPE deviceType,

IDirect3DDevice9** device)

{

//

// Create the main application window.

//

WNDCLASS wc;

wc.style = CS_HREDRAW | CS_VREDRAW;

wc.lpfnWndProc = (WNDPROC)d3d::WndProc;

wc.cbClsExtra = 0;

wc.cbWndExtra = 0;

wc.hInstance = hInstance;

wc.hIcon = LoadIcon(0, IDI_APPLICATION);

wc.hCursor = LoadCursor(0, IDC_ARROW);

wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);

wc.lpszMenuName = 0;

wc.lpszClassName = "Direct3D9App";

if( !RegisterClass(&wc) )

{

::MessageBox(0, "RegisterClass() - FAILED", 0, 0);

return false;

}

HWND hwnd = 0;

hwnd = ::CreateWindow("Direct3D9App", "Direct3D9App",

WS_EX_TOPMOST,

0, 0, width, height,

0 /*parent hwnd*/, 0 /* menu */, hInstance, 0 /*extra*/);

if( !hwnd )

{

::MessageBox(0, "CreateWindow() - FAILED", 0, 0);

return false;

}

::ShowWindow(hwnd, SW_SHOW);

::UpdateWindow(hwnd);

//

// Init D3D:

//

HRESULT hr = 0;

// Step 1: Create the IDirect3D9 object.

IDirect3D9* d3d9 = 0;

d3d9 = Direct3DCreate9(D3D_SDK_VERSION);

if( !d3d9 )

{

::MessageBox(0, "Direct3DCreate9() - FAILED", 0, 0);

return false;

}

// Step 2: Check for hardware vp.

D3DCAPS9 caps;

d3d9->GetDeviceCaps(D3DADAPTER_DEFAULT, deviceType, &caps);

int vp = 0;

if( caps.DevCaps & D3DDEVCAPS_HWTRANSFORMANDLIGHT ) vp = D3DCREATE_HARDWARE_VERTEXPROCESSING;

else

vp = D3DCREATE_SOFTWARE_VERTEXPROCESSING;

// Step 3: Fill out the D3DPRESENT_PARAMETERS structure.

D3DPRESENT_PARAMETERS d3dpp;

d3dpp.BackBufferWidth = width;

d3dpp.BackBufferHeight = height;

d3dpp.BackBufferFormat = D3DFMT_A8R8G8B8;

d3dpp.BackBufferCount = 1;

d3dpp.MultiSampleType = D3DMULTISAMPLE_NONE;

d3dpp.MultiSampleQuality = 0;

d3dpp.SwapEffect = D3DSW APEFFECT_DISCARD;

d3dpp.hDeviceWindow = hwnd;

d3dpp.Windowed = windowed;

d3dpp.EnableAutoDepthStencil = true;

d3dpp.AutoDepthStencilFormat = D3DFMT_D24S8;

d3dpp.Flags = 0;

d3dpp.FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT;

d3dpp.PresentationInterval = D3DPRESENT_INTERV AL_IMMEDIATE; // Step 4: Create the device.

hr = d3d9->CreateDevice(

D3DADAPTER_DEFAULT, // primary adapter

deviceType, // device type

hwnd, // window associated with device

vp, // vertex processing

&d3dpp, // present parameters

device); // return created device

if( FAILED(hr) )

{

// try again using a 16-bit depth buffer

d3dpp.AutoDepthStencilFormat = D3DFMT_D16;

hr = d3d9->CreateDevice(

D3DADAPTER_DEFAULT,

deviceType,

hwnd,

vp,

&d3dpp,

device);

if( FAILED(hr) )

{

d3d9->Release(); // done with d3d9 object

::MessageBox(0, "CreateDevice() - FAILED", 0, 0);

return false;

}

}

d3d9->Release(); // done with d3d9 object

return true;

}

int d3d::EnterMsgLoop( bool (*ptr_display)(float timeDelta) )

{

MSG msg;

::ZeroMemory(&msg, sizeof(MSG));

static float lastTime = (float)timeGetTime();

while(msg.message != WM_QUIT)

{

if(::PeekMessage(&msg, 0, 0, 0, PM_REMOVE))

{

::TranslateMessage(&msg);

::DispatchMessage(&msg);

}

else

{

float currTime = (float)timeGetTime();

float timeDelta = (currTime - lastTime)*0.001f;

ptr_display(timeDelta);

lastTime = currTime;

}

}

return msg.wParam;

}

D3DLIGHT9 d3d::InitDirectionalLight(D3DXVECTOR3* direction, D3DXCOLOR* color) {

D3DLIGHT9 light;

::ZeroMemory(&light, sizeof(light));

light.Type = D3DLIGHT_DIRECTIONAL;

light.Ambient = *color * 0.4f;

light.Diffuse = *color;

light.Specular = *color * 0.6f;

light.Direction = *direction;

return light;

}

D3DLIGHT9 d3d::InitPointLight(D3DXVECTOR3* position, D3DXCOLOR* color)

{

D3DLIGHT9 light;

::ZeroMemory(&light, sizeof(light));

light.Type = D3DLIGHT_POINT;

light.Ambient = *color * 0.4f;

light.Diffuse = *color;

light.Specular = *color * 0.6f;

light.Position = *position;

light.Range = 10000.0f;

light.Falloff = 1.0f;

light.Attenuation0 = 1.0f;

light.Attenuation1 = 0.0f;

light.Attenuation2 = 0.0f;

return light;

}

D3DLIGHT9 d3d::InitSpotLight(D3DXVECTOR3* position, D3DXVECTOR3* direction, D3DXCOLOR* color)

{

D3DLIGHT9 light;

::ZeroMemory(&light, sizeof(light));

light.Type = D3DLIGHT_SPOT;

light.Ambient = *color * 0.4f;

light.Diffuse = *color;

light.Specular = *color * 0.6f;

light.Position = *position;

light.Direction = *direction;

light.Range = 1000.0f;

light.Falloff = 1.0f;

light.Attenuation0 = 1.0f;

light.Attenuation1 = 0.0f;

light.Attenuation2 = 0.0f;

light.Theta = 0.5f;

light.Phi = 0.7f;

return light;

}

D3DMATERIAL9 d3d::InitMtrl(D3DXCOLOR a, D3DXCOLOR d, D3DXCOLOR s, D3DXCOLOR e, float p)

{

D3DMATERIAL9 mtrl;

mtrl.Ambient = a;

mtrl.Diffuse = d;

mtrl.Specular = s;

mtrl.Emissive = e;

mtrl.Power = p;

return mtrl;

}

d3dUtility.h

//////////////////////////////////////////////////////////////////////////////////////////////////

//

// File: d3dUtility.h

//

// Author: Frank Luna (C) All Rights Reserved

//

// System: AMD Athlon 1800+ XP, 512 DDR, Geforce 3, Windows XP, MSVC++ 7.0 //

// Desc: Provides utility functions for simplifying common tasks.

//

//////////////////////////////////////////////////////////////////////////////////////////////////

#ifndef __d3dUtilityH__

#define __d3dUtilityH__

#include

#include

#include

namespace d3d

{

//

// Windows/Direct3D Initialization

//

bool InitD3D(

HINSTANCE hInstance, // [in] Application instance.

int width, int height, // [in] Backbuffer dimensions.

bool windowed, // [in] Windowed (true)or full screen (false).

D3DDEVTYPE deviceType, // [in] HAL or REF

IDirect3DDevice9** device);// [out]The created device.

int EnterMsgLoop(

bool (*ptr_display)(float timeDelta));

LRESULT CALLBACK WndProc(

HWND hwnd,

UINT msg,

WPARAM wParam,

LPARAM lParam);

//

// Cleanup

//

template void Release(T t)

{

if( t )

{

t->Release();

t = 0;

}

}

template void Delete(T t)

{

if( t )

{

delete t;

t = 0;

}

}

//

// Colors

//

const D3DXCOLOR WHITE( D3DCOLOR_XRGB(255, 255, 255) ); const D3DXCOLOR BLACK( D3DCOLOR_XRGB( 0, 0, 0) ); const D3DXCOLOR RED( D3DCOLOR_XRGB(255, 0, 0) );

const D3DXCOLOR GREEN( D3DCOLOR_XRGB( 0, 255, 0) );

const D3DXCOLOR BLUE( D3DCOLOR_XRGB( 0, 0, 255) );

const D3DXCOLOR YELLOW( D3DCOLOR_XRGB(255, 255, 0) );

const D3DXCOLOR CY AN( D3DCOLOR_XRGB( 0, 255, 255) );

const D3DXCOLOR MAGENTA( D3DCOLOR_XRGB(255, 0, 255) );

//

// Lights

//

D3DLIGHT9 InitDirectionalLight(D3DXVECTOR3* direction, D3DXCOLOR* color);

D3DLIGHT9 InitPointLight(D3DXVECTOR3* position, D3DXCOLOR* color);

D3DLIGHT9 InitSpotLight(D3DXVECTOR3* position, D3DXVECTOR3* direction, D3DXCOLOR* color);

//

// Materials

//

D3DMATERIAL9 InitMtrl(D3DXCOLOR a, D3DXCOLOR d, D3DXCOLOR s, D3DXCOLOR e, float p);

const D3DMA TERIAL9 WHITE_MTRL = InitMtrl(WHITE, WHITE, WHITE, BLACK, 2.0f);

const D3DMA TERIAL9 RED_MTRL = InitMtrl(RED, RED, RED, BLACK, 2.0f);

const D3DMATERIAL9 GREEN_MTRL = InitMtrl(GREEN, GREEN, GREEN, BLACK, 2.0f);

const D3DMA TERIAL9 BLUE_MTRL = InitMtrl(BLUE, BLUE, BLUE, BLACK, 2.0f);

const D3DMA TERIAL9 YELLOW_MTRL = InitMtrl(YELLOW, YELLOW, YELLOW, BLACK, 2.0f);

//

// Bounding Objects

//

struct BoundingBox

{

BoundingBox();

bool isPointInside(D3DXVECTOR3& p);

D3DXVECTOR3 _min;

D3DXVECTOR3 _max;

};

struct BoundingSphere

{

BoundingSphere();

D3DXVECTOR3 _center;

float _radius;

};

//

// Constants

//

const float INFINITY = std::numeric_limits::infinity();

const float EPSILON = 0.001f;

//

// Randomness

//

// Desc: Return random float in [lowBound, highBound] interval.

float GetRandomFloat(float lowBound, float highBound);

// Desc: Returns a random vector in the bounds specified by min and max.

void GetRandomVector(

D3DXVECTOR3* out,

D3DXVECTOR3* min,

D3DXVECTOR3* max);

//

// Conversion

//

DWORD FtoDw(float f);

}

#endif // __d3dUtilityH__

Stencilmirrorshadow.cpp

//////////////////////////////////////////////////////////////////////////////////////////////////

//

// File: stencilmirrorshadow.cpp

//

// Author: Frank Luna (C) All Rights Reserved

//

// System: AMD Athlon 1800+ XP, 512 DDR, Geforce 3, Windows XP, MSVC++ 7.0 //

// Desc: Demonstrates mirrors and shadows with stencils. Use the arrow keys

// and the 'A' and 'S' key to navigate the scene and translate the teapot.

//

//////////////////////////////////////////////////////////////////////////////////////////////////

#include "d3dUtility.h"

//

// Globals

//

IDirect3DDevice9* Device = 0;

const int Width = 640;

const int Height = 480;

IDirect3DVertexBuffer9* VB = 0;

IDirect3DTexture9* FloorTex = 0;

IDirect3DTexture9* WallTex = 0;

IDirect3DTexture9* MirrorTex = 0;

D3DMATERIAL9 FloorMtrl = d3d::WHITE_MTRL;

D3DMATERIAL9 WallMtrl = d3d::WHITE_MTRL;

D3DMATERIAL9 MirrorMtrl = d3d::WHITE_MTRL;

ID3DXMesh* Teapot = 0;

D3DXVECTOR3 TeapotPosition(0.0f, 3.0f, -7.5f);

D3DMATERIAL9 TeapotMtrl = d3d::YELLOW_MTRL;

void RenderScene();

void RenderMirror();

void RenderShadow();

//

// Classes and Structures

//

struct Vertex

{

Vertex(){}

Vertex(float x, float y, float z,

float nx, float ny, float nz,

float u, float v)

{

_x = x; _y = y; _z = z;

_nx = nx; _ny = ny; _nz = nz;

_u = u; _v = v;

}

float _x, _y, _z;

float _nx, _ny, _nz;

float _u, _v;

static const DWORD FVF;

};

const DWORD Vertex::FVF = D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_TEX1;

//

// Framework Functions

//

float timeDelta_2;

bool Setup()

{

//

// Make walls have low specular reflectance - 20%.

//

WallMtrl.Specular = d3d::WHITE * 0.2f;

//

// Create the teapot.

//

D3DXCreateTeapot(Device, &Teapot, 0);

//

// Create and specify geometry. For this sample we draw a floor // and a wall with a mirror on it. We put the floor, wall, and

// mirror geometry in one vertex buffer.

//

// |----|----|----|

// |Wall|Mirr|Wall|

// | | or | |

// /--------------/

// / Floor /

// /--------------/

//

Device->CreateVertexBuffer(

24 * sizeof(Vertex),

0, // usage

Vertex::FVF,

D3DPOOL_MANAGED,

&VB,

0);

Vertex* v = 0;

VB->Lock(0, 0, (void**)&v, 0);

// floor

v[0] = Vertex(-7.5f, 0.0f, -10.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f);

v[1] = Vertex(-7.5f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f);

v[2] = Vertex( 7.5f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f);

v[3] = Vertex(-7.5f, 0.0f, -10.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f);

v[4] = Vertex( 7.5f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f);

v[5] = Vertex( 7.5f, 0.0f, -10.0f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f);

// wall

v[6] = Vertex(-7.5f, 0.0f, 0.0f, 0.0f, 0.0f, -1.0f, 0.0f, 1.0f);

v[7] = Vertex(-7.5f, 5.0f, 0.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f);

v[8] = Vertex(-2.5f, 5.0f, 0.0f, 0.0f, 0.0f, -1.0f, 1.0f, 0.0f);

v[9] = Vertex(-7.5f, 0.0f, 0.0f, 0.0f, 0.0f, -1.0f, 0.0f, 1.0f);

v[10] = Vertex(-2.5f, 5.0f, 0.0f, 0.0f, 0.0f, -1.0f, 1.0f, 0.0f);

v[11] = Vertex(-2.5f, 0.0f, 0.0f, 0.0f, 0.0f, -1.0f, 1.0f, 1.0f);

// Note: We leave gap in middle of walls for mirror

v[12] = Vertex(2.5f, 0.0f, 0.0f, 0.0f, 0.0f, -1.0f, 0.0f, 1.0f);

v[13] = Vertex(2.5f, 5.0f, 0.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f);

v[14] = Vertex(7.5f, 5.0f, 0.0f, 0.0f, 0.0f, -1.0f, 1.0f, 0.0f);

v[15] = Vertex(2.5f, 0.0f, 0.0f, 0.0f, 0.0f, -1.0f, 0.0f, 1.0f);

v[16] = Vertex(7.5f, 5.0f, 0.0f, 0.0f, 0.0f, -1.0f, 1.0f, 0.0f);

v[17] = Vertex(7.5f, 0.0f, 0.0f, 0.0f, 0.0f, -1.0f, 1.0f, 1.0f);

// mirror

v[18] = Vertex(-2.5f, 0.0f, 0.0f, 0.0f, 0.0f, -1.0f, 0.0f, 1.0f);

v[19] = Vertex(-2.5f, 5.0f, 0.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f);

v[20] = Vertex( 2.5f, 5.0f, 0.0f, 0.0f, 0.0f, -1.0f, 1.0f, 0.0f);

v[21] = Vertex(-2.5f, 0.0f, 0.0f, 0.0f, 0.0f, -1.0f, 0.0f, 1.0f);

v[22] = Vertex( 2.5f, 5.0f, 0.0f, 0.0f, 0.0f, -1.0f, 1.0f, 0.0f);

v[23] = Vertex( 2.5f, 0.0f, 0.0f, 0.0f, 0.0f, -1.0f, 1.0f, 1.0f);

VB->Unlock();

//

// Load Textures, set filters.

//

D3DXCreateTextureFromFile(Device, "checker.jpg", &FloorTex);

D3DXCreateTextureFromFile(Device, "brick0.jpg", &WallTex);

D3DXCreateTextureFromFile(Device, "ice.bmp", &MirrorTex);

Device->SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR); Device->SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR); Device->SetSamplerState(0, D3DSAMP_MIPFILTER, D3DTEXF_POINT);

//

// Lights.

//

D3DXVECTOR3 lightDir(0.707f, -0.707f, 0.707f);

D3DXCOLOR color(1.0f, 1.0f, 1.0f, 1.0f);

D3DLIGHT9 light = d3d::InitDirectionalLight(&lightDir, &color);

Device->SetLight(0, &light);

Device->LightEnable(0, true);

Device->SetRenderState(D3DRS_NORMALIZENORMALS, true);

Device->SetRenderState(D3DRS_SPECULARENABLE, true);

//

// Set Camera.

//

D3DXVECTOR3 pos(-10.0f, 3.0f, -15.0f);

D3DXVECTOR3 target(0.0, 0.0f, 0.0f);

D3DXVECTOR3 up(0.0f, 1.0f, 0.0f);

D3DXMA TRIX V;

D3DXMatrixLookAtLH(&V, &pos, &target, &up);

Device->SetTransform(D3DTS_VIEW, &V);

//

// Set projection matrix.

//

D3DXMA TRIX proj;

D3DXMatrixPerspectiveFovLH(

&proj,

D3DX_PI / 4.0f, // 45 - degree

(float)Width / (float)Height,

1.0f,

1000.0f);

Device->SetTransform(D3DTS_PROJECTION, &proj);

return true;

}

void Cleanup()

{

d3d::Release(VB);

d3d::Release(FloorTex);

d3d::Release(WallTex);

d3d::Release(MirrorTex);

d3d::Release(Teapot);

}

bool Display(float timeDelta)

{

if( Device )

{

//

// Update the scene:

//

static float radius = 20.0f;

if( ::GetAsyncKeyState(VK_LEFT) & 0x8000f )

TeapotPosition.x -= 3.0f * timeDelta;

if( ::GetAsyncKeyState(VK_RIGHT) & 0x8000f )

TeapotPosition.x += 3.0f * timeDelta;

if( ::GetAsyncKeyState(VK_UP) & 0x8000f )

radius -= 2.0f * timeDelta;

if( ::GetAsyncKeyState(VK_DOWN) & 0x8000f )

radius += 2.0f * timeDelta;

static float angle = (3.0f * D3DX_PI) / 2.0f;

if( ::GetAsyncKeyState('A') & 0x8000f )

angle -= 0.5f * timeDelta;

if( ::GetAsyncKeyState('S') & 0x8000f )

angle += 0.5f * timeDelta;

D3DXVECTOR3 position( cosf(angle) * radius, 3.0f, sinf(angle) * radius );

D3DXVECTOR3 target(0.0f, 0.0f, 0.0f);

D3DXVECTOR3 up(0.0f, 1.0f, 0.0f);

D3DXMA TRIX V;

D3DXMatrixLookAtLH(&V, &position, &target, &up);

Device->SetTransform(D3DTS_VIEW, &V);

/*

D3DXMATRIX Rx,Ry;

//D3DXMatrixRotationX(&Rx,3.14f/4.0f);

D3DXMatrixRotationX(&Rx,0.0f);

static float y=0.0f;

D3DXMatrixRotationY(&Ry,y);

// y+=timeDelta;

y-=timeDelta;

//if(y>=6.28f)

if(y<=-6.28f)

y=0.0f;

D3DXMATRIX cubeWorldMatrix;

D3DXMatrixTranslation(&cubeWorldMatrix,0.0f,0.0f,0.0f);

D3DXMATRIX p=Rx*Ry*cubeWorldMatrix;

Device->SetTransform(D3DTS_WORLD,&p);

*/

timeDelta_2=timeDelta;

//

// Draw the scene:

//

Device->Clear(0, 0,

D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER | D3DCLEAR_STENCIL,

0xff000000, 1.0f, 0L);

Device->BeginScene();

RenderScene();

// draw shadow before mirror because the depth buffer hasn't been cleared

// yet and we need the depth buffer so that the shadow is blended correctly.

// That is, if an object obscures the shadow, we don't want to write the shadow

// pixel. Alternatively, we could redraw the scene to rewrite the depth buffer.

// (RenderMirror clears the depth buffer).

RenderShadow();

RenderMirror();

Device->EndScene();

Device->Present(0, 0, 0, 0);

}

return true;

}

void RenderScene()

{

// draw teapot

Device->SetMaterial(&TeapotMtrl);

Device->SetTexture(0, 0);

D3DXMA TRIX W;

D3DXMatrixTranslation(&W,

TeapotPosition.x,

TeapotPosition.y,

TeapotPosition.z);

// Device->SetTransform(D3DTS_WORLD, &W);

D3DXMA TRIX Rx,Ry;

//D3DXMatrixRotationX(&Rx,3.14f/4.0f);

D3DXMatrixRotationX(&Rx,0.0f);

static float y=0.0f;

D3DXMatrixRotationY(&Ry,y);

// y+=timeDelta;

y-=timeDelta_2;

//if(y>=6.28f)

if(y<=-6.28f)

y=0.0f;

D3DXMATRIX cubeWorldMatrix;

D3DXMatrixTranslation(&cubeWorldMatrix,0.0f,0.0f,0.0f);

D3DXMATRIX p=Rx*Ry*cubeWorldMatrix*W;

Device->SetTransform(D3DTS_WORLD,&p);

Teapot->DrawSubset(0);

D3DXMA TRIX I;

D3DXMatrixIdentity(&I);

Device->SetTransform(D3DTS_WORLD, &I);

Device->SetStreamSource(0, VB, 0, sizeof(Vertex));

Device->SetFVF(Vertex::FVF);

// draw the floor

Device->SetMaterial(&FloorMtrl);

Device->SetTexture(0, FloorTex);

Device->DrawPrimitive(D3DPT_TRIANGLELIST, 0, 2);

// draw the walls

Device->SetMaterial(&WallMtrl);

Device->SetTexture(0, WallTex);

Device->DrawPrimitive(D3DPT_TRIANGLELIST, 6, 4);

// draw the mirror

Device->SetMaterial(&MirrorMtrl);

Device->SetTexture(0, MirrorTex);

Device->DrawPrimitive(D3DPT_TRIANGLELIST, 18, 2);

}

void RenderMirror()

{

//

// Draw Mirror quad to stencil buffer ONL Y. In this way

// only the stencil bits that correspond to the mirror will

// be on. Therefore, the reflected teapot can only be rendered

// where the stencil bits are turned on, and thus on the mirror

// only.

//

Device->SetRenderState(D3DRS_STENCILENABLE, true);

Device->SetRenderState(D3DRS_STENCILFUNC, D3DCMP_ALWAYS);

Device->SetRenderState(D3DRS_STENCILREF, 0x1);

Device->SetRenderState(D3DRS_STENCILMASK, 0xffffffff);

Device->SetRenderState(D3DRS_STENCILWRITEMASK, 0xffffffff);

Device->SetRenderState(D3DRS_STENCILZFAIL, D3DSTENCILOP_KEEP);

Device->SetRenderState(D3DRS_STENCILFAIL, D3DSTENCILOP_KEEP);

Device->SetRenderState(D3DRS_STENCILPASS, D3DSTENCILOP_REPLACE);

// disable writes to the depth and back buffers

Device->SetRenderState(D3DRS_ZWRITEENABLE, false);

Device->SetRenderState(D3DRS_ALPHABLENDENABLE, true);

Device->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_ZERO);

Device->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_ONE);

// draw the mirror to the stencil buffer

Device->SetStreamSource(0, VB, 0, sizeof(Vertex));

Device->SetFVF(Vertex::FVF);

Device->SetMaterial(&MirrorMtrl);

Device->SetTexture(0, MirrorTex);

D3DXMA TRIX I;

D3DXMatrixIdentity(&I);

Device->SetTransform(D3DTS_WORLD, &I);

Device->DrawPrimitive(D3DPT_TRIANGLELIST, 18, 2);

// re-enable depth writes

Device->SetRenderState( D3DRS_ZWRITEENABLE, true );

// only draw reflected teapot to the pixels where the mirror

// was drawn to.

Device->SetRenderState(D3DRS_STENCILFUNC, D3DCMP_EQUAL);

Device->SetRenderState(D3DRS_STENCILPASS, D3DSTENCILOP_KEEP);

// position reflection

D3DXMA TRIX W, T, R;

D3DXPLANE plane(0.0f, 0.0f, 1.0f, 0.0f); // xy plane

D3DXMatrixReflect(&R, &plane);

D3DXMatrixTranslation(&T,

TeapotPosition.x,

TeapotPosition.y,

TeapotPosition.z);

D3DXMA TRIX Rx,Ry;

//D3DXMatrixRotationX(&Rx,3.14f/4.0f);

D3DXMatrixRotationX(&Rx,0.0f);

static float y=0.0f;

D3DXMatrixRotationY(&Ry,y);

// y+=timeDelta;

y-=timeDelta_2;

//if(y>=6.28f)

if(y<=-6.28f)

y=0.0f;

W =Rx*Ry *T * R;

//W = T * R*Rx*Ry;//为什么这个矩阵就转错了呢?因为我们是事先找到茶壶的位置T 矩阵。

//然后是投影R,接着是绕x轴旋转一定的角度,最后是绕y轴旋转一定的角度。这个做法怎么

//就错了呢?我先从矩阵相乘的算法试验了一下。发觉得到的

//w= coso, 0, -sino, 0

// 0, 1, 0, 0

手如何快速使用单反尼康篇

新手如何快速使用单反--尼康篇很多新人入手单反后,面对众多的功能、眼花缭乱的按键会感觉无从下手。想学习下各种功能去看说明书,发现厚厚的说明书使人更加的茫然了。今天我编辑下想玩好单反需要了解的最简单的功能。这些您都学会后您就可以进入单反使用的中级水平了。 一、对P\A\S\M档位的基本理解。 P档是有相机内储存的程序来自动完成拍摄,适合才入手时候使用,但是这个档位闪光灯不会自动弹起来的,光线比较暗的时候请手动弹起机器的闪光灯。 S档位是快门速度优先,不建议新手使用,因为设定好快门速度后需要镜头光圈来自动配合,而很多时候镜头的光圈会超过最大或者最小的极限而不能准确曝光。建议以后对机器和拍摄技巧都熟练后再使用。 A光圈优先模式重点说下这个档位,很多喜欢单反的朋友都是喜欢单反拍出来的照片有虚有实的感觉。那么您就可以使用A档位来拍摄。这个时候让快门速度来配合您的拍摄。那么你就要了解下什么是安全快门。安全快门就是

镜头焦段的倒数,这样的快门速度拍出的照片手持机器基本不会整体画面迷糊掉。解释下:比如你使用100焦段来拍摄的话那么您的快门速度就要高于1/100秒,使用20端拍摄的话快门速度高于1/20秒就可以。那么快门速度低于安全快门就需要您使用三脚架来稳定您的照相机了,如果没有三脚架就需要您打开机器的闪光灯了。

M手动档位。这个档位是为了高级摄影者在拍摄某些特定场合来完成自己想要的特定曝光效果。建议其他档位都使用熟练并真正理解了快门、光圈、ISO、测光模式后再来使用。其实我本人也只有在拍摄夜景、舞台人像、烟花、摄影棚等环境下使用M档位,很多场合A当就可以直接搞定方便速度。

单反相机入门教程 佳能 尼康 强烈推荐(一)

单反相机摄影教程(经典) 大家可以看到,这三个图很清晰的表明了成像的过程,如果各位还没有忘记中学物理知识,就更容易理解了。 简介 单反就是指单透镜反光,即SLR(single lens reflex),是当今最流行的取景系统。 在这种系统中,反光镜和棱镜的独到设计使得摄影者可以从取景器中直接观察到通过镜头的影像。单透镜反光照相机的构造图中可以看到,光线透过镜头到达反光镜后,折射到上面的对焦屏并结成影像,透过接目镜和五棱镜,我们可以在观景窗中看到外面的景物。拍摄时,当按下快门钮,反光镜便会往上弹起,软片前面的快门幕帘便同时打开,通过镜头的光线(影像)便投影到软片上使胶片感光,尔后反光镜便立即恢复原状,观景窗中再次可以看到

影像。单镜头反光相机的这种构造,确定了它是完全透过镜头对焦拍摄的,它能使观景窗中所看到的影像和胶片上永远一样,它的取景范围和实际拍摄范围基本上一致,消除了旁轴平视取景照相机的视差现象,从学习摄影的角度来看,十分有利于直观地取景构图。 不存在视差 单反机由于整个成像系统(对焦与拍摄)为一个镜头所以不存在视差也就是说取景和成 像是一致的。(传统机子多为旁轴式取景) 其次由于采用一个成像系统为一个镜头所以协调反应比一般的机子反应快,所以单反机对高速运动的物体拍摄较好(不会因为相机反应迟钝错失佳景) 再次,单反机由于采用了换镜头组成不同的摄影系统比如说你可以换广角镜、可以加长镜头、也可以加色片、还可以选用微距离镜头等等来满足你的不同需求。你不会因为机子镜头受限错失美景。 优秀的镜头 最后一点,由于单反机多采用了纯天然的水晶或萤石打磨的镜头所以价格就比一般的玻璃以及塑料镜头贵多了。甚至有些采用了超声波马达调节镜头比机械式震动更小有些还有自己的防抖专利(如佳能的EF系列镜头中带有IS标志的)特别是佳能EF系列镜头中带红线的就是所谓的纯天然萤石镜头贵的一个镜头在3-5万之间。 优势及常见品牌 单反数码相机就是指单镜头反光数码相机,即Digital数码、Single单独、Lens镜头、 Reflex反光的英文缩写DSLR。市场中的代表机型常见于尼康、索尼、佳能、宾得、富士等。此类相机一般体积较大,比较重。 使用电子取景器EVF的机型,也归入单反类,但一般加注“类似”,或注明是EVF取景,如奥林巴斯C-2100UZ、富士Finepix 6900等。在单反数码相机的工作系统中,光线透过镜头到达反光镜后,折射到上面的对焦屏并结成影像,透过接目镜和五棱镜,我们可以在观景窗中看到外面的景物。与此相对的,一般数码相机只能通过LCD屏或者电子取景器(EVF)看到所拍摄的影像。显然直接看到的影像比通过处理看到的影像更利于拍摄。 单反数码相机的一个很大的特点就是可以交换不同规格的镜头,这是单反相机天生的优点,是普通数码相机不能比拟的。 另外,现在单反数码相机都定位于数码相机中的高端产品,因此在关系数码相机摄影质量的感光元件(CCD或者CMOS)的面积上,单反数码的面积远远大于普通数码相机,这使

尼康单反相机使用技巧大全

尼康单反相机使用技巧大全 1.距离视全身、半身、大头照而定,使背景虚化,使用A档! 2. 光线好,iso100,光线不好,iso400以内。运动中的人使用追拍,体现运动感(详见下面的运动物体的拍摄)! 3.拍景:A档,使用适当的光圈,f8以上吧,焦距随便,但是,一般广角端都有畸变,酌情使用。 4.拍夜景:上三脚架,M档,自定义白平衡或白炽灯,f8以上的光圈,小光圈可以使灯光出星光的效果;iso200以内,尽量使曝光时间加长,这样可以使一些无意走过的人从画面消失,不留下痕迹,净化场景。例如拍一个广场,人来人往,可以使用很小的光圈f20左右,iso100,这样,曝光时间很长,那么,走动的人影,不会留在照片上,广场将会很干净。5.拍烟花:使用快门线,B快门,长时间曝光,可以拍出多烟花重叠的效果。 6.拍运行的东西:光线好的情况:A档,光圈大小酌情处理;使用f8以上的光圈得到大景深效果,使用小光圈得到浅景深的效果;想拍很有动感的效果,可以使用S档,快门1/30左右,对焦按快门的同时,镜头以合适的速度追着对象移动,会出很动感的效果。光线不好的情况:只能酌情处理了,再加上使用追拍。 7.拍流水或喷泉:用S档,1/50左右的快门速度,可以拍出缎子的效果,使用较快的快门,可以拍出水滴的效果! 8.夜间人像留影:上三脚架,调节白平衡,自动或自定义白平衡;iso100-400;A档,光圈f8左右,使用慢速同步闪光,后帘闪光模式;此时,闪光灯会闪两次,按下快门闪一次,曝光结束前会再闪一次,所以在闪两次前,人不要离开。这样拍出来可以使人物清晰,背景霓虹也很漂亮,不至于背景曝光不足而过暗。 9.光圈优先技巧: 1)不管拍啥.除非要保持安全快门,不然别开最大光圈拍。 2)拍风景请尽量使用F8~F11的光圈。 3)拍人物及静物特写可使用最大光圈缩1~2级之光圈。 4)安全快门请尽量控制在焦距倒数以上.广角端快门也要在1/30秒以上比较保险.若快门不足请提高光圈或ISO。 10.测光方式: 1)测光不要对着天空,不要对着最暗的地方.要去抓中间值。 2)依照你拍的题材,善用测光模式(权衡测光.点测光.中央重点测光...)。 3)若遇到测光抓不准的时候,请对身边灰色的东西曝光锁定后再来拍摄。 4)尽量别对白色或黑色物体测光,不然就请记得黑要减EV、白要加EV。EV 即曝光补偿,曝光补偿也是一种曝光控制方式,一般常见在±2-3EV左右,如果环境光源偏暗,即可增加曝光值(如调整为+1EV、+2EV)以突显画面的清晰度。 数码相机在拍摄的过程中,如果按下半截快门,液晶屏上就会显示和最终效果图差不多的图片,对焦,曝光一切启动。这个时候的曝光,正是最终图片的曝光度。图片如果明显偏亮或偏暗,说明相机的自动测光准确度有较大偏差,要强制进行曝光补偿,不过有的时候,拍摄时显示的亮度与实际拍摄结果有一定出入。数码相机可以在拍摄后立即浏览画面,此时,可以更加准确地看到拍摄出来的画面的明暗程度,不会再有出入。如果拍摄结果明显偏亮或偏暗,则要重新拍摄,强制进行曝光补偿。 拍摄环境比较昏暗,需要增加亮度,而闪光灯无法起作用时,可对曝光进行补偿,适当增加曝光量。进行曝光补偿的时候,如果照片过暗,要增加EV值,EV值每增加1.0,相当于摄入的光线量增加一倍,如果照片过亮,要减小EV值,EV值每减小1.0,相当于摄入的光线

尼康单反D90使用手册

尼康单反D90使用手册 设置机身对焦辅助灯 在光线不佳的环境里拍摄时,我们需要开启机身的自动对焦辅助灯帮助我们完成对焦。 按下MENU键在个人设定菜单里选择自动对焦,然后选择a3内置自动对焦辅助照明灯,选择ON开启,这是当我们按下快门键时自动对焦辅助灯会自动亮起,在昏暗环境里将大有作为。能保证约3米内的物体足够亮度合焦。 利用帮助功能学习相机设置 功能越来越丰富的尼康D90,使用的时候难免遇到不懂用的功能,不愿查看说明书的朋友可以使用机内的显示注释功能了解一下该功能的用处。

显示注释十分简单,只需在高亮所选项目时按下“?”键即可,该键与WB键为同一键,将显示相关的注释。 设置自定义Fn键提高拍摄效率 位于手柄内侧的Fn键可以自己设定所需的功能设定项,方便在需要高效率拍摄时,更快地操作。 Fn键的位置设定为刚好可以在握住手柄时用食指按下,方便快速设定,设置时按下MENU键进入菜单,选择控制页面,进入第三项“指定FUNC按钮”即可设定多项快速设定功能,可以使用显示注释功能作查看再设置。 手动设置白平衡的方法按住WB键拨动拨盘调整白平衡

拨动后拨盘切换到PRE档再次长按WB键 长按WB键直到PRE字样闪烁对白色物体对焦完成取样 出现GOOD字样表示成功设置 设置自定义白平衡首先按下WB键,按住的同时拨动后拨盘选择PRE档,然后再一次长按WB键,直到PRE档闪烁,表示可以取样,镜头选择手动对焦,对准白色或者灰色物体,是单一颜色充满画面,使用A档按下快门即可。出现GOOD字样时表示成功设置,否则出现NO GOOD,须重新设置。 如何设置包围曝光 包围曝光在拍摄高光比的场景时会使用到,当我们不确定曝光值是否正确的时候,使用包围曝光拍摄多张不同曝光值的照片,可以减少拍出不满意的照片而后悔的情况出现。

尼康照相机使用说明

尼康照相机 1、照片效果=像素+解像力 2、1024*768分辨率=每条水平线上都有1024个像素,共768条水平线+76.8万像素 3、对焦点是数码单反摄影中最为重要的技术之一,对焦点多,覆盖的取景区域就更为密集。拍摄运用的景物有优势。 4、点测联动,测光点可以跟随对焦点移动,对焦位置既是测光位置 5、尼康出众的感光度适合拍摄夜景 6、佳能相机拍出的照片色彩更为浓烟,尼康则是清新、淡雅。 7、尼康数码单反相机分三个系列(1)高性价比的入门机型D3000、D3100、D5000、D5100、D90、D7000等。相机机身多采用强化塑料的材质,重量相对较轻,各项功能的最高品质不足,例如入门级单反相机的ISO感光度最高可扩展为12800,而当前最高的ISO感光度已经达到20万以上。机身塑料耐用度不够,手感稍差。连拍速度、最多可连拍张数、最高像素数、画质、画面视角等都不够完美。(2)强大的准专业机型D300S(告诉连拍功能,适合拍摄运动及体育类器材)、D700(全画幅机型的典范)。一般为金属机身,较比顶级机型缩减了某些功能或降低了某些成本。(3)顶级的专业机型D3X(高达2450万像素)、D3S(超过10万的感光度)顶级机型属于超前产品,一般情况下在若干年内不会被低端机型超越。 8、镜头上A与M为自从对焦和手动对焦的调节按钮。A为自动。有些机身配有马达,需将机身上的马达开关也设定到“自动”(开)的状态,才能实现自动对焦(机身上的AF、M)9、尼康的三中对焦模式(1)AF-C(连续对焦)适用于拍摄运动对象。(2)AF-S(单次对焦)适用于拍摄静止对象。(3)AF-A(自动伺服)自动调节对焦模式。运动时自动调节至AF-C,静止时自动调节至AF-S。对焦模式调节方式:按住相机身上的“AF模式”按钮,然后转动主拨轮,即可在这3种模式间转换。 10、超焦距(泛焦)技法:在拍摄大场面的风光画面时,大多数情况下要求画面有更大一些的景深,使远处与最近处拉进附近的景物都能清晰地表现出来。这种情况下,只能设定很小的光圈,才有可能实现则个要求,但有时却无法实现,因为再小的光圈也不可能保证所有距离内的景物都非常清晰。例如,假设用24-70mm这款镜头,以一篇草丛或岩石为前景,拍摄大场面的风光,对焦点在无限远处或较远处的某个景物上,因为要获得最大景深,我们设定这款镜头的最小光圈F22,但这时会发现前景的草丛或岩石仍然是模糊的,超出了景深范围。这段模糊的距离范围,就是“超焦距”,如果将对焦位置放在超焦距距离处,则可以发现画面中所有的景物都变得非常清晰,这便是“泛焦”,也成为“超焦距法”。(正常来说我们在拍摄时没有必要严格执行超焦距法,如果发现超焦距内的模糊前景影响到画面的效果,那么可以稍微往近一点的位置对焦,只要能够保证所拍摄的画面内景物都非常清晰即可。11、追踪对焦技法:要表现主体运动的效果,可以使用追踪对焦法进行拍摄。拍摄时,要使运动的主体时刻保持在取景范围内,并且对主体连续对焦,相机视角就必须追随着主体转动,这时运动的主题对相机来说如同静止一般,而实际上静止的背景对于相机来说则变为运动状态。根据主体运动的速度而设定中慢快门,则最终拍摄的画面中,运动主体是清晰的,但背景却因为相机的转动而变为运动模糊状态。 12、光圈的两个作用:(1)通过进光量的多少来控制摄影时的曝光程度。(2)通过改变光圈大小来调节拍摄照片的清晰与虚化效果。 13、光圈大小的选择:一般情况下风光题材的照片要求画面中远处与近处的景物都非常清晰,需要景深较深,应使用F7.1以上的中小光圈。对于人像、微距等题材,要求人物非常清晰,而背景要虚化,因此可使用F5.6以下的大光圈拍摄,获得较浅景深的效果。此外,夜晚或光线微弱时,可使用较大光圈使更多的光进入相机。

尼康D90数码单反相机的使用方法指南

怎样用好nikon 尼康D90-菜单设置和配镜指南 结了一些经验,这次就介绍一下D90的菜单设置和镜头配置的一些经验与大家分享。还是我的一句老话,没有砖头就不能成长。同时也请资深高手们与大家分享你们的经验,一起摄影,一起快乐,共同进步。 一;推荐NEF(RAW)出片,设置全部为“零”、“无”、“标准”---------这个很重要,玩单反一定要习惯这样玩

二;JPG直出,建议NEF+JPEG精细,这样的好处是直接出片还不理想的情况下还可以用NEF找回来部分细节,有利于后期修改。如果不会NX2,那就JPEG 得了。尼康用户一定要学会这个软件。 拍摄菜单:建议用光圈优先A模式,特殊情况用手动模式(M模式),如对比度大或暗环境,夜景、烟花等。 色彩模式:永远sRGB,adobe RGB等你搞懂了再说,估计你也不会用,因为现在的显示器不支持啊。 动态D-Lighting:自动,你想怎么玩就怎么玩,看效果吧!不过现在我发现这个功能打开会影响到图像质量,而且部分菜单变灰,不能设置,因此大家可根据情况设定,最后后期在软件里搞定。 快门模式:建议用单张模式,俺极少用连拍,因为第一张没对准,连拍也无用。但高速运动的情况下可以用连拍,如UFO 。打鸟打飞机时也可以用啊,哈哈。特殊情况下用自动延时或遥控,如用三角架拍合影。 白平衡:还是用自动吧,大多数情况下都很好。建议阳光+3,白炽灯-1,荧光灯-1,如室内,多云等。 ISO:启用自动ISO.设置ISO最高1600,最低快门1/60秒。D90 ISO在1600时可以放心使用,如不有效利用高ISO,那还是买D80吧,性价比更高。很多朋友对这个不太理解,实际上在天气好的情况下相机还是以200为默认值的,当然拍夜景上脚架时最好用手动调节ISO. 对焦模式:大多数情况下用AF-A,拍小孩时建议用AF-C,特殊情况用手动对焦,如微距、烟花等特殊环境。 AF区域模式:3D, 对焦循环方式:ON

尼康D系列单反相机拍摄方法和设置

尼康D系列单反相机拍 摄方法和设置 Revised as of 23 November 2020

设置方法1.优化校准:你可以在menu菜单中找到它,一般使用“标准”就可以,建议将“标准”的锐度调+3,对比+1,饱和度+1。这样可以使照片“更锐”,拍人像时建议锐度调+4,风景建议锐度调+7。 :关闭,可以在menu菜单中找到它。这个功能是由相机计算出的暗部细节,不会那么精准,会使照片细节模糊,尤其拍夜景的时候会更明显。 建议在大光比环境下使用高动态HDR,是按照不同曝光拍多张照片,再进行合成,效果要好的多,不过有可能会颜色失真。 按键:作为D5100唯一的快捷键,默认是切换10秒自拍的,但是延时自拍很少使用,建议将其设置为ISO调整,这样按住Fn键,拨动拨轮,就可以方便增减ISO了。 区域模式:调整成3D跟踪,机器会自动跟踪开始的对焦点对焦的,对于慢速移动的物体或者对焦后二次构图很有用。 档:如果你是出去旅游或者是要随时抓拍的情况,就尽量不要用M档了,改用A档,因为A档是光圈优先,你只用调整光圈,机器会自动调整快门速度达到Ev平衡,使你的照片很少欠爆过爆。 平衡:机器默认的平衡都是设置在18%灰度的基础上的,所以如果画面上白色比较多,那画面拍出来就会偏灰,就需要我们适当增加一些曝光补偿,如果会面上黑色比较多,那么画面拍出来还是会偏灰,这时我们就需要降低一些曝光补偿。 7.测光:一般情况下,白天用范围或者中央评价测光就可以,夜晚最好用点测光。 :此值越大,快门就会越快,ISO提高一倍,快门就快一倍。但是噪点就会增加,现在对于D5100的认识是,白天400,室内1600-以上,夜晚6400都不会有太大问题,早点控制还是很不错的!

尼康D系列单反相机拍摄方法和设置

设置方法 1.优化校准:你可以在menu菜单中找到它,一般使用“标准”就可以,建议将“标准”的锐度调+3,对比+1,饱和度+1。这样可以使照片“更锐”,拍人像时建议锐度调+4,风景建议锐度调+7。 2.D-Lighting:关闭,可以在menu菜单中找到它。这个功能是由相机计算出的暗部细节,不会那么精准,会使照片细节模糊,尤其拍夜景的时候会更明显。 建议在大光比环境下使用高动态HDR,是按照不同曝光拍多张照片,再进行合成,效果要好的多,不过有可能会颜色失真。 3.Fn按键:作为D5100唯一的快捷键,默认是切换10秒自拍的,但是延时自拍很少使用,建议将其设置为ISO调整,这样按住Fn键,拨动拨轮,就可以方便增减ISO了。 4.AF区域模式:调整成3D跟踪,机器会自动跟踪开始的对焦点对焦的,对于慢速移动的物体或者对焦后二次构图很有用。 5.M档:如果你是出去旅游或者是要随时抓拍的情况,就尽量不要用M档了,改用A档,因为A档是光圈优先,你只用调整光圈,机器会自动调整快门速度达到Ev平衡,使你的照片很少欠爆过爆。 6.Ev平衡:机器默认的平衡都是设置在18%灰度的基础上的,所以如果画面上白色比较多,那画面拍出来就会偏灰,就需要我们适当增加一些曝光补偿,如果会面上黑色比较多,那么画面拍出来还是会偏灰,这时我们就需要降低一些曝光补偿。 7.测光:一般情况下,白天用范围或者中央评价测光就可以,夜晚最好用点测光。 8.ISO:此值越大,快门就会越快,ISO提高一倍,快门就快一倍。但是噪点就会增加,现在对于D5100的认识是,白天400,室内1600-以上,夜晚6400都不会有太大问题,早点控制还是很不错的! 9.光圈:此值越大,所产生的光圈越小,这个大家要先了解好,也就是说,f22的光圈比f3.5的光圈小,那么光圈越大,说明光线能更多的到达cmos上,也就能得到更快的快门,和上面一样,光圈大一倍,快门也会快一倍。同时,大光圈,会得到浅景深,也就是说背景虚化越厉害。另外,光圈的定义是建立在人眼是1.0的基础上计算的。一般来说,拍摄风景时,光圈都要在f8-f11之间,近景要f4左右。 10.快门:快门时间单位是秒,那么秒数越多,说明照片的曝光时间越长,反之曝光时间就短。那么秒数越多,你的双手就更有可能晃动,这样照片模糊的几率就越大。另外镜头的VR作用总之是有限的,不要过于依赖。 11.焦距:套头焦距是18-55,D5100是DX非全画幅的相机,焦距需要*1.5,也就是说套头的实际焦距就是27-82.5了。焦段越小,拍摄的画面场景越大,反之场景越小。同时,随着焦段的增加,景深越小,背景也更容易虚化。 12.镜头:一般来说,套头的18-55已经够用了,所以买了狗头的可以先练下技术,不用着急换。很多评测都要求买50定,因为50焦距是标准镜头,可以帮你熟练构图。但是D5100是DX 非全画幅的相机,所以要乘以1.5,这样50变成了75,变成人像头了,所以大家应该买35定,换算焦距后是52.5,基本是标准镜头的了。现在基本都是35扫街,只有到大场景的时候才用下18-105。 长焦感觉不实用,喜欢偷拍的除外吧呵呵。 人像定焦有些需要,但是看你有没有模特了。 闪光灯还是应该入一枚的,不需要太复杂。 圆满后,再回头考虑换个更好的广角变焦吧,切勿已经入了狗头看到大湿们的牛头照片觉得是镜头的问题着急换牛头,然后拍完发现也那么回事。那些丰富的色彩,用光影都可以解决,

尼康D7100单反相机使用指南

尼康D7100 单反相机使用指南 尼康7100 用机宝典,以下所提及的拍摄种类,基本上覆盖了日常拍摄的大部分情况。不过本文只是针对尼康7100 在设置上的一些技巧,但诸如构图、用光、角度等基本拍摄技巧,还需要大家浏览关于摄影基本技巧的文章,配合本文的尼康D7100 设置技巧,在拍摄上将会相得益彰。 7100 基本菜单如何设置一,推荐NEF (RAW )出片,设置全部为“零”、“无”、“标--准---”这个很重要,玩单反一定要习惯这样玩 二,JPG 直出,建议NEF+JPEG 精细,这样的好处是直接出片还不理想的情况下还可以用NEF 找回来部分细节,有利于后期修改。如果不会NX2 ,那就JPEG 得了。尼康用户一定要学会这个软件。 拍摄菜单:建议用光圈优先A 模式,特殊情况用手动模式(M 模式),如对比度大或暗环境,夜景、烟花等。 色彩模式:永远sRGB ,adobe RGB 等你搞懂了再说,估计你也不会用,因为现在的显示器不支持啊。 动态D-Lighting: 自动,你想怎么玩就怎么玩,看效果吧!不过现在我发现这个功能打开会影响到图像质量,而且部分菜单变灰,不能设置,因此大家可根据情况设定,最后后期在软件里搞定。

快门模式:建议用单张模式,俺极少用连拍,因为第一张没对准, 连拍也无用。但高速运动的情况下可以用连拍。特殊情况下用自动延时或遥控,如用三角架拍合影。白平衡:还是用自动吧,大多数情况下都很好。建议阳光+3 ,白炽灯-1 ,荧光灯-1,如室内,多云等。如果用自动白平衡模式:建议设置成B3 ,M1 从此你将摆脱白平衡不准的尴尬,几乎不用后期了。 ISO :启用自动ISO. 很多朋友对这个不太理解,实际上在天气好的情况下相机还是以200 为默认值的,当然拍夜景上脚架时最好用手动调节ISO. 对焦模式:大多数情况下用AF-A ,拍小孩时建议用AF-C ,最近发现AF-C 无敌啊,比AF-S 强太多了,推荐推荐。特殊情况用手动对焦,如微距、烟花等特殊环境。 AF 区域模式:3D ,对焦循环方式:ON 测光模式:风景用矩阵测光,人像用中央重点测光,微距用点测光。测光不准的环境,拍摄模式改用手动模式。插一句,拍风景最好准备一个中灰渐变滤镜,穷人至少要准备一个偏振镜,你会得到意想不到的效果。曝光补偿:原则是0,室外人像经常用—0.3?0,风景经常用一 0.3?一1.0,雪景经常用+0.7。记住白加黑减的原则最优化影 像:风景/鲜艳模式锐度6,饱和度-2 ,对比度-1 。 人像锐度3~4 ,饱和度-2,对比度-1。改过后完美超越富士 曲线,可以再也不用后期了,推荐推荐! AE-L/AF-L 锁定键:全部用曝光锁定保持。按一下AE 就锁定曝

尼康单反相机的用法

尼康单反相机的用法 第一步:不要在接触摄影之前去反复琢磨自己主要拍什么,次要拍什么不会去拍什么,想也是白想,更不要以此得出个什么结论而去决定买什么器材了。100%的人不会在学会开 车之前问自己会去哪条街,不会去哪条胡同,一辈子出几次车祸闯几回红灯,摄影的道路 是在未知中,依靠兴趣探索前进的,完全不必人云亦云,附庸风雅。 第二步:不要迷信要拍好某种题材就一定要装备某种器材,譬如说拍人像就得85/1.4,拍风光就得16-35/2.8L,拍昆虫就得100/2.8MACRO,你会成为败家子一个。广角也可以 拍人像,长焦拍的风光更有特殊味道,所谓某款镜头是人像头,某款镜头是风光头,这样 的广告词都是用来欺骗业余消费者的。 第三步:相机是用来制造视觉享受的,不是用来砸核桃和遇到歹徒自卫反击的。尽量 选择轻便实用的相机是比较务实的,当然,外型要漂亮,起码和自己的外型要相得益彰。 第四步:所谓一镜走天涯的镜头最好不要买,因为你很没有可能会走天涯,如果你有 条件走天涯,就更不能用诸如24-300这样的镜头拍东西了,为什么?问问买过这样镜头的 朋友就知道了,他们正郁闷也说不定。 第五步:没有任何基础,也没有兴趣研究相机基本知识的话,不妨先选择数码口袋机,要能手动调节光圈的,不要买傻瓜机,不要买胶片入门机,因为你一旦发觉自己真的越来 越有灵感,你会痛苦地再花一笔钱买更好些的相机,这是定律,而现在从胶片入门,也是 过时的做法。 第六步:网上的好看照片,包括论坛里的精品照片,特别是数码作品,几乎都有后期 的精心制作,这也是摄影不可或缺的一部分。所以在论坛里,有心请教DX的话,应该多 从他们那里诚恳的挖掘PS大法,而不是采访他们按动快门一瞬间的灵感是哪里来的。灵 感是很难学会的,而技术是共通的。 第七步:参加各种拍摄活动固然可以迅速提高水平,但是不能进一步提高水平。摄影 是门孤独的艺术,不论是人像还是风光,独立思考之下才可能有独特风格的令自己满意的 作品。所以想多交朋友,就多参加活动,想长进摄影技术,就尽量单练,自己悟自己的, 其乐无穷。 第八步:既然是玩摄影,就不必遵守太多的教条,可以先沉浸在自我满足后,再慢慢 接受其他人的意见和建议,毕竟摄影是主观艺术。当然,得到更多人认可是种让人上瘾的 享受,不必太把别人的评价当回事情,没有人比你自己理解自己的摄影追求。 第九步:拍人像,不要从美女帅哥开始,那会让你有种惰性。真正的美女帅哥怎么拍 都好看,建议先从老的和丑的拍起,而且拍这样的模特心理压力小,一般也不苛求你拍的 多好,而他们一般也知道自己不怎么上镜,而你一旦拍好了,多有成就感。

尼康D3000新手使用指南 详解详解

其实本不应该发这样的帖子!(多看说明书可以解决很多的问题)今天又有个朋友问取景器细线的问题,看来入D3000的朋友大多是新手,刚刚接触单反,不说基础知识了,单说具体的机器使用上就够他们学的了!为了更好的加快初学者的学习!特立此帖,请问问题的直接站内留言,不要在此提问!我将不定期的更新!几乎全是文字的东西!一口气看完会感到很烦,你可以这样做--就是有问题来这查查~!看看有没有你想要的答案! 编辑了几天了~!多少有了点东西,以后还会继续添加,因为都是自己总结出来的经验,回答也都是自己的感觉,难免有错误的地方,希望给予指正,也好让我们共同的学习! 一、取景器问题 1、突然发现取景器中连接对焦点有一根很细的黑线,不管对焦点在11点对焦 位置上如何移动,那根黑线都会连接对焦点指向取景器的边缘? 答:那个线是正常的,每个D3000相机都一样,D5000也是一样的!~或是说那种对焦显示屏都是那个性质,透射液晶屏的特性!以前没有是你没太注意,现在有了是因为你细心的去观察机器了!这是好事,其实专心的构图就看不到那条线了! 2、我的取景器很暗什么都看不清? 答:我们用的这种取景器叫眼平五镜面单镜反光取景器,对焦屏是B型屏幕带有对焦框可显示网格,电子试屏幕,既然是电子的就要靠电的支持,所以当电池耗尽或是电池取出事,取景器会变暗,这是正常现象,并非故障,当装入电池时就会恢复正常!(说明书第5页) 3、我也有黑线问题,但是不是上边说的那种黑线,而是三横三竖的细线,并且 一直存在? 答:这样的细线叫取景网格在设定菜单的--取景器选项--取景器网格中选择了开启,你关闭就没有了!它是一种辅助的对焦线,你可以用它来避免构图上与大地倾斜,或是楼房等倾斜(当然你喜欢倾斜的构图另当别论)现在一些高端的相机在实时取景屏上还有虚拟水平尺,道理相同,其他的在取景器里还有中央测光参考直径圈、存储卡警告、电池电量指示的显示!你可以细心的观察得到了

尼康照相机使用说明

尼康照相机使用说明标准化管理处编码[BBX968T-XBB8968-NNJ668-MM9N]

尼康照相机 1、照片效果=像素+解像力 2、1024*768分辨率=每条水平线上都有1024个像素,共768条水平线+76.8万像素 3、对焦点是数码单反摄影中最为重要的技术之一,对焦点多,覆盖的取景区域就更为密集。拍摄运用的景物有优势。 4、点测联动,测光点可以跟随对焦点移动,对焦位置既是测光位置 5、尼康出众的感光度适合拍摄夜景 6、佳能相机拍出的照片色彩更为浓烟,尼康则是清新、淡雅。 7、尼康数码单反相机分三个系列(1)高性价比的入门机型D3000、D3100、D5000、 D5100、D90、D7000等。相机机身多采用强化塑料的材质,重量相对较轻,各项功能的最高品质不足,例如入门级单反相机的ISO感光度最高可扩展为12800,而当前最高的ISO 感光度已经达到20万以上。机身塑料耐用度不够,手感稍差。连拍速度、最多可连拍张数、最高像素数、画质、画面视角等都不够完美。(2)强大的准专业机型 D300S(告诉连拍功能,适合拍摄运动及体育类器材)、D700(全画幅机型的典范)。一般为金属机身,较比顶级机型缩减了某些功能或降低了某些成本。(3)顶级的专业机型D3X(高达2450万像素)、D3S(超过10万的感光度)顶级机型属于超前产品,一般情况下在若干年内不会被低端机型超越。 8、镜头上A与M为自从对焦和手动对焦的调节按钮。A为自动。有些机身配有马达,需将机身上的马达开关也设定到“自动”(开)的状态,才能实现自动对焦(机身上的AF、M)

9、尼康的三中对焦模式(1)AF-C(连续对焦)适用于拍摄运动对象。(2)AF-S(单次对焦)适用于拍摄静止对象。(3)AF-A(自动伺服)自动调节对焦模式。运动时自动调节至AF-C,静止时自动调节至AF-S。对焦模式调节方式:按住相机身上的“AF模式”按钮,然后转动主拨轮,即可在这3种模式间转换。 10、超焦距(泛焦)技法:在拍摄大场面的风光画面时,大多数情况下要求画面有更大一些的景深,使远处与最近处拉进附近的景物都能清晰地表现出来。这种情况下,只能设定很小的光圈,才有可能实现则个要求,但有时却无法实现,因为再小的光圈也不可能保证所有距离内的景物都非常清晰。例如,假设用24-70mm这款镜头,以一篇草丛或岩石为前景,拍摄大场面的风光,对焦点在无限远处或较远处的某个景物上,因为要获得最大景深,我们设定这款镜头的最小光圈F22,但这时会发现前景的草丛或岩石仍然是模糊的,超出了景深范围。这段模糊的距离范围,就是“超焦距”,如果将对焦位置放在超焦距距离处,则可以发现画面中所有的景物都变得非常清晰,这便是“泛焦”,也成为“超焦距法”。(正常来说我们在拍摄时没有必要严格执行超焦距法,如果发现超焦距内的模糊前景影响到画面的效果,那么可以稍微往近一点的位置对焦,只要能够保证所拍摄的画面内景物都非常清晰即可。 11、追踪对焦技法:要表现主体运动的效果,可以使用追踪对焦法进行拍摄。拍摄时,要使运动的主体时刻保持在取景范围内,并且对主体连续对焦,相机视角就必须追随着主体转动,这时运动的主题对相机来说如同静止一般,而实际上静止的背景对于相机来说则变为运动状态。根据主体运动的速度而设定中慢快门,则最终拍摄的画面中,运动主体是清晰的,但背景却因为相机的转动而变为运动模糊状态。 12、光圈的两个作用:(1)通过进光量的多少来控制摄影时的曝光程度。(2)通过改变光圈大小来调节拍摄照片的清晰与虚化效果。

尼康照相机使用说明

尼康照相机 1、照片效果二像素+解像力 2、1024*768分辨率二每条水平线上都有1024个像素,共768条水平线+76.8万像素 3、对焦点是数码单反摄影中最为重要的技术之一,对焦点多,覆盖的取景区域就更为密集。拍摄运用的景物有优势。 4、点测联动,测光点可以跟随对焦点移动,对焦位置既是测光位置 5、尼康出众的感光度适合拍摄夜景 6、佳能相机拍出的照片色彩更为浓烟,尼康则是清新、淡雅。 7、尼康数码单反相机分三个系列(1)高性价比的入门机型D3000 D3100 D5000 D51O0 D90 D7000等。相机机身多采用强化塑料的材质,重量相对较轻,各项功能的最高品质不足,例如入门级单反相机的ISO感光度最高可扩展为12800,而当前最高的ISO感光度已经达到20万以上。机身塑料耐用度不够,手感稍差。连拍速度、 最多可连拍张数、最咼像素数、画质、画面视角等都不够完美。(2)强大的准专业 机型D300S (告诉连拍功能,适合拍摄运动及体育类器材)、D700 (全画幅机型的典范)。一般为金属机身,较比顶级机型缩减了某些功能或降低了某些成本。(3)顶级的专业机型D3X(高达2450万像素)、D3S(超过10万的感光度)顶级机型属于超前产品,一般情况下在若干年内不会被低端机型超越。 &镜头上A与M为自从对焦和手动对焦的调节按钮。A为自动。有些机身配有马达,需将机身上的马达开关也设定到“自动”(开)的状态,才能实现自动对焦(机身上的AF、M)9、尼康的三中对焦模式(1)AF-C(连续对焦)适用于拍摄运动对象。(2)AF-S (单次对焦)适用于拍摄静止对象。(3)AF-A (自动伺服)自动调节对焦模式。运动时自动调节至AF-C,静止时自动调节至AF-S。对焦模式调节方式:按住相机身上的“AF 模式”按钮,然后转动主拨轮,即可在这 3 种模式间转换。

尼康D80单反相机使用入门

D80的正确使用方法 D80是台需要合理使用才能出好片的好机子。优点是:功能全,足以对付大多数摄影爱好者的需求;成像清楚度好,锐度高;白平衡大多数情况下很准确;测光系统稳定。最大的不足是大多数情况下,成像色彩偏蓝(表现出来的结果是感觉偏紫红色,尤其表现在人像摄影上)。根据上述特点,在使用D80上,可以扬长避短。 注意并做到以下几个方面,就很容易出好片: 1、矩阵测光一般-0.3E,环境越暗越要减得多,比如黄昏室内可以减到 0.7-1.3E,出的片子更接近实际情况,并稍亮一些,以保证良好的反差和层次。 2、点测,主要用于拍人像,可对准人的脸部或皮肤,但要+0.3e,出的片子才刚刚好。 3、不要用色彩饱和度+,那样出的片子会色彩很失真,只用标准或柔和。 4、针对色彩偏蓝的现象,后期一定要对三原色作适当调整,大多数情况下是,红色不变,绿色-2,蓝色-4或-6;或红色加4,绿色加2,蓝色不变或减2。这样色彩还原情况大大改善,尤其是对人像,皮肤偏紫的情况可以消除,还一个正常的肤色。 5、针对色彩偏蓝现象,也可以将相机色相调为+3(只适合色彩模式1情况下),效果比方法4稍差。 6、中长焦情况下拍出来的片子,一般反差会较小,后期可以稍稍提升对比度约3%-10%,图像质量会有大大提高。 7、ISO可以大胆用到400,光圈用到较大,以充分保证快门速度,以保证清晰度和锐度。个人爱好是用色彩模式1进行风光和人像拍摄(锐度+1,其它一律为标准),注意了上述几点后,感觉比较容易出令人满意的片子。以上是个人体会,供大家参考。 需要合理使用的D80 D80是台需要合理使用才能出好片的好机子。 优点是:功能全,足以对付大多数摄影爱好者的需求;成像清楚度好,锐度高;白平衡大多数情况下很准确;测光系统稳定。 最大的不足是大多数情况下,成像色彩偏蓝(表现出来的结果是感觉偏紫红色,尤其表现在人像摄影上)。 根据上述特点,在使用D80上,可以扬长避短。注意并做到以下几个方面,就很容易出好片: 1、矩阵测光一般-0.3E,环境越暗越要减得多,比如黄昏室内可以减到0.7-1.3E,

尼康照相机使用说明

尼康照相机使用说明 Document serial number【KKGB-LBS98YT-BS8CB-BSUT-BST108】

尼康照相机 1、照片效果=像素+解像力 2、1024*768分辨率=每条水平线上都有1024个像素,共768条水平线+76.8万像素 3、对焦点是数码单反摄影中最为重要的技术之一,对焦点多,覆盖的取景区域就更为密集。拍摄运用的景物有优势。 4、点测联动,测光点可以跟随对焦点移动,对焦位置既是测光位置 5、尼康出众的感光度适合拍摄夜景 6、佳能相机拍出的照片色彩更为浓烟,尼康则是清新、淡雅。 7、尼康数码单反相机分三个系列(1)高性价比的入门机型D3000、D3100、 D5000、D5100、D90、D7000等。相机机身多采用强化塑料的材质,重量相对较轻,各项功能的最高品质不足,例如入门级单反相机的ISO感光度最高可扩展为12800,而当前最高的ISO感光度已经达到20万以上。机身塑料耐用度不够,手感稍差。连拍速度、最多可连拍张数、最高像素数、画质、画面视角等都不够完美。(2)强大的准专业机型 D300S(告诉连拍功能,适合拍摄运动及体育类器材)、D700(全画幅机型的典范)。一般为金属机身,较比顶级机型缩减了某些功能或降低了某些成本。(3)顶级的专业机型D3X(高达2450万像素)、D3S(超过10万的感光度)顶级机型属于超前产品,一般情况下在若干年内不会被低端机型超越。 8、镜头上A与M为自从对焦和手动对焦的调节按钮。A为自动。有些机身配有马达,需将机身上的马达开关也设定到“自动”(开)的状态,才能实现自动对焦(机身上的AF、M) 9、尼康的三中对焦模式(1)AF-C(连续对焦)适用于拍摄运动对象。(2)AF-S(单次对焦)适用于拍摄静止对象。(3)AF-A(自动伺服)自动调节对焦模式。运动时自动调节至AF-C,静止时自动调节至AF-S。对焦模式调节方式:按住相机身上的“AF模式”按钮,然后转动主拨轮,即可在这3种模式间转换。 10、超焦距(泛焦)技法:在拍摄大场面的风光画面时,大多数情况下要求画面有更大一些的景深,使远处与最近处拉进附近的景物都能清晰地表现出来。这种情况下,只能设定很小的光圈,才有可能实现则个要求,但有时却无法实现,因为再小的光圈也不可能保证所有距离内的景物都非常清晰。例如,假设用24-70mm这款镜头,以一篇草丛或岩石为前景,拍摄大场面的风光,对焦点在无限远处或较远处的某个景物上,因为要获得最大景深,我们设定这款镜头的最小光圈F22,但这时会发现前景的草丛或岩石仍然是模糊的,超出了景深范围。这段模糊的距离范围,就是“超焦距”,如果将对焦位置放在超焦距距离处,则可以发现画面中所有的景物都变得非常清晰,这便是“泛焦”,也成为“超焦距法”。(正常来说我们在拍摄时没有必要严格执行超焦距法,如果发现超焦距内的模糊前景影响到画面的效果,那么可以稍微往近一点的位置对焦,只要能够保证所拍摄的画面内景物都非常清晰即可。 11、追踪对焦技法:要表现主体运动的效果,可以使用追踪对焦法进行拍摄。拍摄时,要使运动的主体时刻保持在取景范围内,并且对主体连续对焦,相机视角就必须追随着主体转动,这时运动的主题对相机来说如同静止一般,而实际上静止的背景对于相机来说则变为运动状态。根据主体运动的速度而设定中慢

尼康D系列单反相机拍摄方法和设置

尼康D系列单反相机拍摄方法和设置 文件排版存档编号:[UYTR-OUPT28-KBNTL98-UYNN208]

设置方法1.优化校准:你可以在menu菜单中找到它,一般使用“标准”就可以,建议将“标准”的锐度调+3,对比+1,饱和度+1。这样可以使照片“更锐”,拍人像时建议锐度调+4,风景建议锐度调+7。 :关闭,可以在menu菜单中找到它。这个功能是由相机计算出的暗部细节,不会那么精准,会使照片细节模糊,尤其拍夜景的时候会更明显。 建议在大光比环境下使用高动态HDR,是按照不同曝光拍多张照片,再进行合成,效果要好的多,不过有可能会颜色失真。 按键:作为D5100唯一的快捷键,默认是切换10秒自拍的,但是延时自拍很少使用,建议将其设置为ISO调整,这样按住Fn键,拨动拨轮,就可以方便增减ISO 了。 区域模式:调整成3D跟踪,机器会自动跟踪开始的对焦点对焦的,对于慢速移动的物体或者对焦后二次构图很有用。 档:如果你是出去旅游或者是要随时抓拍的情况,就尽量不要用M档了,改用A 档,因为A档是光圈优先,你只用调整光圈,机器会自动调整快门速度达到Ev平衡,使你的照片很少欠爆过爆。 平衡:机器默认的平衡都是设置在18%灰度的基础上的,所以如果画面上白色比较多,那画面拍出来就会偏灰,就需要我们适当增加一些曝光补偿,如果会面上黑色比较多,那么画面拍出来还是会偏灰,这时我们就需要降低一些曝光补偿。 7.测光:一般情况下,白天用范围或者中央评价测光就可以,夜晚最好用点测光。

:此值越大,快门就会越快,ISO提高一倍,快门就快一倍。但是噪点就会增加,现在对于D5100的认识是,白天400,室内1600-以上,夜晚6400都不会有太大问题,早点控制还是很不错的! 9.光圈:此值越大,所产生的光圈越小,这个大家要先了解好,也就是说,f22的光圈比的光圈小,那么光圈越大,说明光线能更多的到达cmos上,也就能得到更快的快门,和上面一样,光圈大一倍,快门也会快一倍。同时,大光圈,会得到浅景深,也就是说背景虚化越厉害。另外,光圈的定义是建立在人眼是的基础上计算的。一般来说,拍摄风景时,光圈都要在f8-f11之间,近景要f4左右。10.快门:快门时间单位是秒,那么秒数越多,说明照片的曝光时间越长,反之曝光时间就短。那么秒数越多,你的双手就更有可能晃动,这样照片模糊的几率就越大。另外的VR作用总之是有限的,不要过于依赖。 11.焦距:套头焦距是18-55,D5100是DX非全画幅的相机,焦距需要*,也就是说套头的实际焦距就是了。焦段越小,拍摄的画面场景越大,反之场景越小。同时,随着焦段的增加,景深越小,背景也更容易虚化。 12.镜头:一般来说,套头的18-55已经够用了,所以买了狗头的可以先练下技术,不用着急换。很多评测都要求买50定,因为50焦距是标准镜头,可以帮你熟练构图。但是D5100是DX非全画幅的相机,所以要乘以,这样50变成了75,变成人像头了,所以大家应该买35定,换算焦距后是,基本是标准镜头的了。现在基本都是35扫街,只有到大场景的时候才用下18-105。 长焦感觉不实用,喜欢偷拍的除外吧呵呵。 人像定焦有些需要,但是看你有没有模特了。 闪光灯还是应该入一枚的,不需要太复杂。

相关主题